劲松网站建设,山东建设厅网站网址,东圃网站建设,作品集用什么网站做无复用思想的做法#xff1a; 在没有复用思想的时候#xff0c;就只顾着实现功能。比如开发过程中涉及到两个表的更新功能#xff0c;每需要更新一处#xff0c;就写一个接口#xff0c;结果出现了写了11个接口的情况。 这样虽然功能实现了#xff0c;可是可能自…无复用思想的做法 在没有复用思想的时候就只顾着实现功能。比如开发过程中涉及到两个表的更新功能每需要更新一处就写一个接口结果出现了写了11个接口的情况。 这样虽然功能实现了可是可能自己都忘了自己当时写的是什么。别人看起来维护起来更是困难写得多还更容易出错。 那么通过复用让代码做减法有复用思想的做法 这里用到了通用SQL这个概念
实践
1.创建一个Maven项目
2.引入pom依赖这里引入了三个mysqlmybatisjunit如下 dependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!--mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.2/version/dependency!--junit--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency/dependencies
同时在pom中添加如下部分 !--在build中配置resources来防止我们资源导出失败的问题--buildresourcesresourcedirectorysrc/main/resources/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resourceresourcedirectorysrc/main/java/directoryincludesinclude**/*.properties/includeinclude**/*.xml/include/includesfilteringfalse/filtering/resource/resources/build
3.项目目录结构按照这个结构创建 4.数据库连接文件 db.properties drivercom.mysql.jdbc.Driver
urljdbc:mysql://localhost:3306/mysql?useSSLfalse;useUnicodetrue;CharacterEncodingUTF-8
usernameroot
password123456
5.MyBatis配置文件
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttps://mybatis.org/dtd/mybatis-3-config.dtd
!--configuration mybatis的核心配置文件--
configuration!--引入外部配置文件--properties resourcedb.properties/!--配置--settings!--标准日志工厂设置--setting namelogImpl valueSTDOUT_LOGGING/!--显示的开启全局缓存--setting namecacheEnabled valuetrue//settings!--可以给实体类取别名--typeAliases!--可以指定一个包名MyBatis会在包名下面搜索需要的Java Bean--package nameorg.example.pojo//typeAliases!--environments 后面的s表示这是一个复数可以编写多套环境 default表示默认的环境为development--environments defaultdevelopment!--编写一套环境 名称为configuration--environment iddevelopment!--jdbc的事务管理--transactionManager typeJDBC/!--配置数据库相关数据--dataSource typePOOLEDproperty namedriver value${driver}/!--userSSL是一个按权连接 amp是一个转移符 等同于and CharacterEncodingutf-8可以保证输入数据库的数据不乱码--property nameurl value${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment/environments!--绑定接口--mappersmapper classorg.example.dao.UserCourseGroupConfigurationMapper//mappers
/configuration
6.MyBatis配置类
public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;//静态代码块一旦初始化就加载static{try {//使用Mybatis第一步获取sqlSessionFactory对象//获取资源直接读到mybatis-config.xmlString resource mybatis-config.xml;//需要用到输入流InputStream 把resource类加载进来InputStream inputStream Resources.getResourceAsStream(resource);//通过build把输入流加载进来sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}public static SqlSession getSqlSession() {//openSession中有自动commit提交事务的方法加上true就能实现return sqlSessionFactory.openSession(true);}
}7.下面就是最重要的部分通用SQL
通用update语句 update idupdateCourseGroupConfigurationupdate arpro_user_course_group_configurationtrim prefixSET suffixOverrides,if testreviseParam.infoId ! nullinfo_id #{reviseParam.infoId}/ifif testreviseParam.courseId ! nullcourse_id #{reviseParam.courseId}/ifif testreviseParam.classId ! nullclass_id #{reviseParam.classId}/ifif testreviseParam.groupId ! nullgroup_id #{reviseParam.groupId}/ifif testreviseParam.type ! nulltype #{reviseParam.type}/ifif testreviseParam.isDelete ! nullis_delete #{reviseParam.isDelete}/ifif testreviseParam.remark ! nullremark #{reviseParam.remark}/ifif testreviseParam.isMostLike ! nullis_like #{reviseParam.isLike}/if/trimwhere is_delete 0if testconditionParam.infoId ! null and info_id #{conditionParam.infoId}/ifif testconditionParam.courseId ! nulland course_id #{conditionParam.courseId}/ifif testconditionParam.classId ! nulland class_id #{conditionParam.classId}/ifif testconditionParam.groupId ! nulland group_id #{conditionParam.groupId}/ifif testconditionParam.isMostLike ! nulland is_like #{conditionParam.isLike}/ifif testconditionParam.type ! nulland type #{conditionParam.type}/if/update
这样就避免了写多个接口的麻烦和带来的后续麻烦