深圳网站建设ucreator,苏州网站关键词推广,大连网站建设招标,WordPress网页描述标签目录 一#xff1a;背景介绍
二#xff1a;思路方案
三#xff1a;过程 1.项目结构 2.准备一个普通的maven项目#xff0c;部署好mysql数据库 3.在项目中引入pom依赖 5.编写MyBitis配置文件 6.编写Mysql配置类 7.编写通用Update语句 8.项目启动类
四#xff1a;总…
目录 一背景介绍
二思路方案
三过程 1.项目结构 2.准备一个普通的maven项目部署好mysql数据库 3.在项目中引入pom依赖 5.编写MyBitis配置文件 6.编写Mysql配置类 7.编写通用Update语句 8.项目启动类
四总结 一背景介绍 在项目开发的过程中我们编写sql语句的时候通常不会考虑到我要编写的sql语句之前是不是有人写过或者是不是可以复用别人的sql语句。而是直接我用了什么业务就直接写一个对应的sql语句。甚至有的时候我们自己写了之后都不清楚了。这样就没有使代码进行复用也会带来代码带以维护的问题。 二思路方案 1.编写通用的sql语句使其满足百分之九十的sql语句。 2.让代码的复用性更高。减少后期代码的维护成本。
三过程 1.项目结构 2.准备一个普通的maven项目部署好mysql数据库 3.在项目中引入pom依赖 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/dependencies4.在db.properties配置文件中添加连接数据库的语句
drivercom.mysql.jdbc.Driver
urljdbc:mysql:服务器IP:3306/wzill?useSSLfalse;useUnicodetrue;CharacterEncodingUTF-8
username数据库账号
password数据库密码 5.编写MyBitis配置文件
?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!--typeAlias typecom.kuang.pojo.User aliasUser/--!--可以指定一个包名MyBatis会在包名下面搜索需要的Java Bean--package namecom.wzl.CommonUse.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 classcom.wzl.CommonUse.dao.UserMapper//mappers
/configuration 6.编写Mysql配置类
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.编写通用Update语句 update idupdateUserupdate usertrim prefixSET suffixOverrides,if testuserPojo.uid ! nulluid #{userPojo.uid}/ifif testuserPojo.id ! nullid #{userPojo.id}/ifif testuserPojo.name ! nullname #{userPojo.name}/ifif testuserPojo.age ! nullage #{userPojo.age}/ifif testuserPojo.username ! nullusername #{userPojo.username}/ifif testuserPojo.password ! nullpassword #{userPojo.password}/ifif testuserPojo.email ! nullemail #{userPojo.email}/ifif testuserPojo.phone ! nullphone #{userPojo.phone}/ifif testuserPojo.addr ! nulladdr #{userPojo.addr}/ifif testuserPojo.state ! nullstate #{userPojo.state}/if/trimwhere state 2if testconditionParam.addr ! null and addr #{conditionParam.addr}/ifif testconditionParam.phone ! nulland phone #{conditionParam.phone}/ifif testconditionParam.name ! nulland name #{conditionParam.name}/ifif testconditionParam.age ! nulland age #{conditionParam.age}/ifif testconditionParam.username ! nulland username #{conditionParam.username}/ifif testconditionParam.password ! nulland password #{conditionParam.password}/if/update这样我们在编写对于 user表中的数据进行更新的时候只需要这一个通用的语句就可以了。涉及到批量更新的话还是需要新的sql语句的。相信通过不断的学习我们也可以把批量的和单独的进行一个代码的复用。 8.项目启动类
public class Client{Testpublic void test(){//获取数据库连接SqlSession sqlSession MybatisUtils.getSqlSession();UserMapper userMapper sqlSession.getMapper(UserMapper.class);//进行更新操作UserPojo UserPojo1 new UserPojo();UserPojo UserPojo2 new UserPojo();//假删除某个课的某个班的所有信息UserPojo1.setUsername(223667994);UserPojo2.setUsername(bbb);//进行调用userMapper.updateUser(UserPojo1,UserPojo2);}
}四总结 在写代码之前先去看一下项目中是否有类似的业务逻辑是否有可以复用的代码。来减少我们做无用功。代码的复用对于我们后期对于项目维护的成本非常低。