对网站政务建设的建议,网站建设的广告语,湖南中维电力建设有限公司网站,企业解决方案文章目录 一、Spring 整合 MyBatis 的关键点二、Spring 整合 MyBatis 的步骤2.1 创建 Maven 项目#xff0c;并导入相关依赖2.2 配置 Mybatis 部分2.3 配置 Spring 部分2.3 配置测试类 一、Spring 整合 MyBatis 的关键点 1、 将 Mybatis 的 DataSource (数据来源)的创建和管理… 文章目录 一、Spring 整合 MyBatis 的关键点二、Spring 整合 MyBatis 的步骤2.1 创建 Maven 项目并导入相关依赖2.2 配置 Mybatis 部分2.3 配置 Spring 部分2.3 配置测试类 一、Spring 整合 MyBatis 的关键点 1、 将 Mybatis 的 DataSource (数据来源)的创建和管理交给 Spring Ioc 容器来做并使用第三方数据库连接池来(DruidC3P0等)取代 MyBatis 内置的数据库连接池 2、将 Mybatis 的 SqlSessionFactroy 交给 Spring Ioc 创建和管理使用 spring-mybatis 整合jar包中提供的 SqlSessionFactoryBean 类代替项目中的 MyBatisUtil 工具类 3、将MyBatis的接口代理方式生成的实现类交给Spring IoC容器创建并管理 二、Spring 整合 MyBatis 的步骤 2.1 创建 Maven 项目并导入相关依赖 创建 maven 项目并在pom.xml 中整合如下依赖 注意如果需要配置 Maven 静态资源过滤问题时需要保证静态资源路径正确否则扫描不到 单元测试junit mybatis 相关依赖 数据库相关依赖 mysql、Oracle等 第三方数据库连接池 Spring 相关依赖 aop 织入器 mybatis-spring 整合包【重点】 lombok 工具依赖 slf4j日志依赖 具体依赖如下所示 dependencies!-- Junit测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopecompile/scope/dependency!-- MyBatis核心Jar包 --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.6/version/dependency!-- MySql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!-- Lombok工具 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.12/versionscopeprovided/scope/dependency!-- Spring核心 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.3/version/dependency!-- Spring-test测试 --dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.3.3/version/dependency!-- slf4j日志包 --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependency!-- druid阿里的数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.10/version/dependency!-- Spring整合ORM --dependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion5.3.3/version/dependency!-- Spring整合MyBatis --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion1.3.2/version/dependency/dependencies2.2 配置 Mybatis 部分 创建实体类 Data
public class User {private String id;private String name;private String pwd;}创建 Mapper 接口 public interface UserMapper {ListUsers getUsers();int addUsers(Users users);int updateUser(Users users);int deleteUser(Users users);
}创建 Mapper 接口对应的 xml ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.sys.mapper.UserMapper !-- 开启MyBatis自带的二级缓存 --!--cache size1024 evictionLRU flushInterval60000 readOnlytrue/--select idgetUsers resultTypecom.sys.dto.Usersselect id,name,pwd from user/selectinsert idaddUsers parameterTypecom.sys.dto.Usersinsert into user (id,name,pwd) values (#{id},#{name},#{pwd})/insertupdate idupdateUser parameterTypecom.sys.dto.Usersupdate user set name #{name} where id #{id}/updatedelete iddeleteUser parameterTypecom.sys.dto.Usersdelete from user where id #{id}/delete/mapper配置数据源之前学习 MyBatis 时候都是配置到xml中的这次维护到 jdbc-config.properties 中因为不使用 MyBatis 内置连接池使用第三方数据连接池 jdbc.drivercom.mysql.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/mybatis?useSSLfalseamp;useUnicodetrueamp;characterEncodingUTF-8
jdbc.usernameroot
jdbc.passwordroot配置 mybatis-config.xml 配置 MyBatis 缓存 ?xml version1.0 encodingUTF-8?
!DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtdconfiguration!-- 开启延迟加载 该项默认为false即所有关联属性都会在初始化时加载true表示延迟按需加载 --settingssetting namelazyLoadingEnabled valuetrue/!-- 开启二级缓存这里注释了不配置默认为一级缓存 --!-- setting namecacheEnabled valuetrue/ --/settings/configuration配置 log log4j.rootLoggerDEBUG, stdout
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern%5p %d %C: %m%nlog4j.logger.java.sql.ResultSetINFO
log4j.logger.org.apacheINFO
log4j.logger.java.sql.ConnectionDEBUG
log4j.logger.java.sql.StatementDEBUG
log4j.logger.java.sql.PreparedStatementDEBUG2.3 配置 Spring 部分 配置 Spring 容器 1、将数据源以 Bean 的形式存储进 Ioc容器 2、配置 SessionFactory 的 Bean并将数据源的 Bean 以及 MyBatis 配置文件的路径和 mapper.xml 的映射关系注入到 SessionFactory 的 Bean 中 。注SessionFactory 点进源码可以发现这个类是 mybatis 的实体工具类所有给属性命名时必须和 SessionFactory 中的属性保持一致 3、配置 mapper 接口的自动扫描 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd!-- 加载数据库连接信息的属性文件 --context:property-placeholder locationclasspath:jdbc-config.properties/!-- 配置Druid数据源的Bean --bean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//bean!-- 配置SessionFactory的Bean --bean idsessionFactory classorg.mybatis.spring.SqlSessionFactoryBean!-- 注入数据源 --property namedataSource refdataSource/!-- 指定MyBatis配置文件的位置 --property nameconfigLocation valueclasspath:mybatis-config.xml/!-- 配置 xml 的映射 --property namemapperLocations valueclasspath:mapper/*.xml//bean!-- 配置mapper接口的扫描器将Mapper接口的实现类自动注入到IoC容器中实现类Bean的名称默认为接口类名的首字母小写 --bean classorg.mybatis.spring.mapper.MapperScannerConfigurer!-- basePackage属性指定自动扫描mapper接口所在的包 --property namebasePackage valuecom.sys.mapper//bean
/beans2.3 配置测试类 RunWith注解 RunWith 就是一个运行器 RunWith(JUnit4.class) 就是指用JUnit4来运行 RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境 RunWith(Suite.class) 就是一套测试集合 ContextConfiguration Spring整合JUnit4测试时使用注解引入多个配置文件 ContextConfiguration注解 ContextConfiguration这个注解通常与RunWith(SpringJUnit4ClassRunner.class)联合使用用来测试这里的用法是通过它来找到 Spring 的配置文件通过配置文件找到数据源以及 mybatis 配置文件和 映射 mapper 接口等 RunWith(SpringJUnit4ClassRunner.class)
ContextConfiguration(locations classpath:applicationContext.xml)
public class Test_SpringMyBatis {Autowiredprivate UserMapper userMapper;Testpublic void testFindUserList(){Users users new Users();/*users.setId(4);users.setName(姚青);users.setPwd(123456);int i userMapper.addUsers(users);*//*users.setId(5);users.setName(张三);int i2 userMapper.updateUser(users);*//*users.setId(6);int i3 userMapper.deleteUser(users);*/ListUsers userList userMapper.getUsers();System.out.println(userList);}}测试结果增删改查均通过