(7)MyBatis之与Spring整合
来源:互联网 发布:新通教育 知乎 编辑:程序博客网 时间:2024/05/11 18:06
- 引言
- MyBatis之与Spring整合
- 1 创建我们的数据库
- 2 pomxml文件
- 3 创建持久化类Student
- 4 创建映射文件StudentMapperxml
- 5 创建BaseMapper
- 6 创建StudentMapper
- 61 向映射文件添加SQL语句
- 7 创建Spring-MyBatis配置文件
- 71 JDBC配置
- 72 Spring-MyBatis配置
- 8 测试Mapper测试是否成功
- 81 测试代码
- 82 测试成功
- 9 创建BaseService如果测试成功
- 10 创建BaseServiceImpl
- 10 创建StudentService
- 11 创建StudentServiceImpl
- 12 创建Springxml文件
- 13 创建测试类查看是否整合成功
- 14 整合成功
- 代码下载
- 本博客的代码下载地址为MyBatis之与Spring整合
1.引言
在本篇博客中主要介绍:MyBatis
和Spring
的整合
Spring
和MyBatis
的整合主要注意一下几点:
MyBatis
的配置在Spring
配置文件中MyBatis
的实现类有Spring
动态代理生成MyBatis
的事务要交给Spring
来管理
2.MyBatis之与Spring整合
2.1 创建我们的数据库
DROP DATABASE IF EXISTS school;CREATE DATABASE IF NOT EXISTS school;USE school;CREATE TABLE `student`(`sid` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`sname` VARCHAR(32) ,`hobit` VARCHAR(20));INSERT INTO `student` (`sid`,`sname`,`hobit`)VALUES(1,"aaa","喜欢玩游戏");INSERT INTO `student` (`sid`,`sname`,`hobit`)VALUES(2,"bbb","喜欢学习");INSERT INTO `student` (`sid`,`sname`,`hobit`)VALUES(3,"ccc","喜欢打篮球");
2.2 pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>mybatis_spring</groupId> <artifactId>mybatis_spring</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!-- 表示开发的时候引入,发布的时候不会加载此包 --> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化对象,方便输出日志 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> </dependencies> <build> <finalName>mybatis_spring</finalName> </build></project>
2.3 创建持久化类(Student
)
package com.skd.domain;public class Student { private Integer sid; private String sname; private String hobit; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname == null ? null : sname.trim(); } public String getHobit() { return hobit; } public void setHobit(String hobit) { this.hobit = hobit == null ? null : hobit.trim(); }}
2.4 创建映射文件(StudentMapper.xml
)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.skd.mapper.StudentMapper" > <resultMap id="BaseResultMap" type="com.skd.domain.Student" > <id column="sid" property="sid" jdbcType="INTEGER" /> <result column="sname" property="sname" jdbcType="VARCHAR" /> <result column="hobit" property="hobit" jdbcType="VARCHAR" /> </resultMap></mapper>
2.5 创建BaseMapper
package com.skd.mapper;public interface BaseMapper<T> { //添加单个对象 public int insert(T entity); //修改单个对象 public int update(T entity); //删除单个对象 public int delete(T entity); //通过主键(数组)批量删除数据 public int deleteList(String [] pks); //根据id查询单个对象 public T select(Integer id);}
2.6 创建StudentMapper
package com.skd.mapper;import com.skd.domain.Student;public interface StudentMapper extends BaseMapper<Student> {}
2.6.1 向映射文件添加SQL语句
<select id="select" parameterType="int" resultMap="BaseResultMap"> select * from student where sid=#{id}</select>
2.7 创建Spring-MyBatis
配置文件
2.7.1 JDBC
配置
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/schoolusername=rootpassword=root
2.7.2 Spring-MyBatis
配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean> <!--MySQL数据库的链接信息--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!--让Spring创建sqlSessionFactory对象--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:com/skd/mapper/*.xml"></property> </bean> <!--让Spring为Mapper接口生成动态代理--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.skd.mapper" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!--让Spring管理事务--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!--配置扫描式事务--> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>
2.8 测试Mapper测试是否成功
2.8.1 测试代码
import com.skd.mapper.StudentMapper;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:spring-mybatis.xml"})public class TestMapper { @Autowired private StudentMapper studentMapper; @Test public void test(){ studentMapper.select(1); }}
2.8.2 测试成功
2.9 创建BaseService
(如果测试成功)
package com.skd.service;public interface BaseService<T> { //添加单个对象 public int insert (T entity) throws Exception; //修改单个对象 public int update(T entity) throws Exception; //删除单个对象 public int delete(T entity) throws Exception; //通过主键(数组)批量删除数据 public int deleteList(String [] pks) throws Exception; //查询单个对象 public T select(Integer id);}
2.10 创建BaseServiceImpl
package com.skd.service.impl;import com.skd.mapper.BaseMapper;import com.skd.service.BaseService;import org.springframework.transaction.annotation.Transactional;public abstract class BaseServiceImpl<T> implements BaseService<T>{ public abstract BaseMapper<T> getMapper(); @Transactional(readOnly=false) public int insert(T entity) throws Exception { return getMapper().insert(entity); } @Transactional(readOnly=false) public int update(T entity) throws Exception { return getMapper().update(entity); } @Transactional(readOnly=false) public int delete(T entity) throws Exception { return getMapper().delete(entity); } @Transactional(readOnly=false) public int deleteList(String[] pks) throws Exception { return getMapper().deleteList(pks); } public T select(Integer id) { return getMapper().select(id); }}
2.10 创建StudentService
package com.skd.service;import com.skd.domain.Student;public interface StudentService extends BaseService<Student>{}
2.11 创建StudentServiceImpl
package com.skd.service.impl;import com.skd.domain.Student;import com.skd.mapper.BaseMapper;import com.skd.mapper.StudentMapper;import com.skd.service.StudentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class StudentServiceImpl extends BaseServiceImpl<Student> implements StudentService{ @Autowired private StudentMapper studentMapper; @Override public BaseMapper<Student> getMapper() { return studentMapper; }}
2.12 创建Spring.xml
文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.skd.service.impl" /> <import resource="spring-mybatis.xml"></import> </beans>
2.13 创建测试类(查看是否整合成功)
import com.skd.service.StudentService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:Spring.xml"})public class TestService { @Autowired private StudentService studentService; @Test public void test(){ System.out.print(studentService.select(1)); }}
2.14 整合成功
3.代码下载
本博客的代码下载地址为:MyBatis之与Spring整合
1 0
- (7)MyBatis之与Spring整合
- spring与mybatis整合之事务管理
- mybatis学习之与Spring整合
- mybatis 高级映射和spring整合之与Spring整合(6)
- spring与mybatis整合
- 整合spring与myBatis
- mybatis 与 spring 整合
- mybatis与spring整合
- mybatis与spring整合
- mybatis与spring整合
- spring与mybatis整合
- spring与mybatis整合
- Spring与Mybatis整合
- Mybatis与Spring整合
- spring与mybatis整合
- mybatis与spring整合
- spring与mybatis整合
- Mybatis与Spring整合
- 14: PYCURL ERROR 6
- Linux查看和剔除当前登录用户
- php连接数据库新命令
- kali,ubuntu, debain DNS 配置
- JAVA设计模式之单例模式-快速理解Java中的五种单例模式(转)
- (7)MyBatis之与Spring整合
- 下载、安装springmvc框架步骤
- Laravel 修改默认日志文件名称和位置
- 周志华《机器学习》课后习题解答系列(一):目录
- HDU 3062 Party (2-SAT)
- @RequestBody与@ResponseBody
- Android发送邮件
- Git系列二之数据管理
- 嵌入式设备基于Linux实现双屏显示