Spring整合MyBatis
1.创建工程
1.1.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> com.wt</ groupId> < artifactId> Spring_MyBatis</ artifactId> < version> 1.0-SNAPSHOT</ version> < properties> < project.build.sourceEncoding> UTF-8</ project.build.sourceEncoding> < project.reporting.outputEncoding> UTF-8</ project.reporting.outputEncoding> < maven.compiler.source> 1.8</ maven.compiler.source> < maven.compiler.target> 1.8</ maven.compiler.target> </ properties> < dependencies> < dependency> < groupId> org.springframework</ groupId> < artifactId> spring-context</ artifactId> < version> 5.1.8.RELEASE</ version> </ dependency> < dependency> < groupId> org.springframework</ groupId> < artifactId> spring-aspects</ artifactId> < version> 5.1.8.RELEASE</ version> </ dependency> < dependency> < groupId> org.springframework</ groupId> < artifactId> spring-tx</ artifactId> < version> 5.1.8.RELEASE</ version> </ dependency> < dependency> < groupId> org.springframework</ groupId> < artifactId> spring-jdbc</ artifactId> < version> 5.1.8.RELEASE</ version> </ dependency> < dependency> < groupId> mysql</ groupId> < artifactId> mysql-connector-java</ artifactId> < version> 5.1.47</ version> </ dependency> < dependency> < groupId> com.alibaba</ groupId> < artifactId> druid</ artifactId> < version> 1.1.0</ version> </ dependency> < dependency> < groupId> org.mybatis</ groupId> < artifactId> mybatis</ artifactId> < version> 3.5.3</ version> </ dependency> < dependency> < groupId> org.mybatis</ groupId> < artifactId> mybatis-spring</ artifactId> < version> 2.0.3</ version> </ dependency> < dependency> < groupId> org.slf4j</ groupId> < artifactId> slf4j-log4j12</ artifactId> < version> 1.7.26</ version> </ dependency> < dependency> < groupId> org.springframework</ groupId> < artifactId> spring-test</ artifactId> < version> 5.1.8.RELEASE</ version> </ dependency> < dependency> < groupId> junit</ groupId> < artifactId> junit</ artifactId> < version> 4.12</ version> </ dependency> </ dependencies> < build> < resources> < resource> < directory> src/main/java</ directory> < includes> < include> **/*.xml</ include> </ includes> </ resource> </ resources> </ build>
</ project>
1.2.log4j.properties
log4j.rootLogger=DEBUG,A1log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%t] [%c]-[%p] %m%n
1.3.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans" xmlns: context= " http://www.springframework.org/schema/context" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation= " http://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: component-scan base-package = " com.wt" > </ context: component-scan>
</ beans>
2.配置数据源
2.1.db.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=1111
2.2.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans" xmlns: context= " http://www.springframework.org/schema/context" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation= " http://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 location = " classpath:db.properties" /> < bean id = " dataSource" class = " com.alibaba.druid.pool.DruidDataSource" destroy-method = " close" > < property name = " driverClassName" value = " ${jdbc.driverClass}" /> < property name = " url" value = " ${jdbc.url}" /> < property name = " username" value = " ${jdbc.username}" /> < property name = " password" value = " ${jdbc.password}" /> </ bean>
</ beans>
3.整合MyBatis
3.1.applicationContext.xml
< bean id = " sqlSessionFactory" class = " org.mybatis.spring.SqlSessionFactoryBean" > < property name = " dataSource" ref = " dataSource" > </ property> < property name = " typeAliasesPackage" value = " com.wt.pojo" > </ property>
</ bean>
< bean class = " org.mybatis.spring.mapper.MapperScannerConfigurer" > < property name = " basePackage" value = " com.wt.mapper" > </ property> < property name = " sqlSessionFactoryBeanName" value = " sqlSessionFactory" > </ property>
</ bean>
4.测试
4.1.创建表
CREATE TABLE ` t_user` ( ` id` int ( 11 ) NOT NULL AUTO_INCREMENT , ` name` varchar ( 255 ) DEFAULT NULL , ` money` float DEFAULT NULL , PRIMARY KEY ( ` id` )
) ENGINE = InnoDB AUTO_INCREMENT = 14 DEFAULT CHARSET = utf8;
4.2.pojo
package com. by. pojo ; public class User { private Integer id; private String name; private Float money; public User ( String name, Float money) { this . name = name; this . money = money; } public User ( ) { } public Integer getId ( ) { return id; } public void setId ( Integer id) { this . id = id; } public String getName ( ) { return name; } public void setName ( String name) { this . name = name; } public Float getMoney ( ) { return money; } public void setMoney ( Float money) { this . money = money; }
}
4.3.mapper
public interface UserMapper { public void addUser ( User user) ;
}
<?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.wt.mapper.UserMapper" > < insert id = " addUser" parameterType = " User" > insert into t_user(name,money) values(#{name},#{money})</ insert>
</ mapper>
4.4.service
@Service
public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void addUser ( User user) { userMapper. addUser ( user) ; }
}
4.5.junit
package com. by. test ; import com. by. pojo. User ;
import com. by. service. UserService ;
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 ( "classpath:applicationContext.xml" )
public class ServiceTest { @Autowired private UserService userService; @Test public void testAdd ( ) { userService. addUser ( new User ( "张三丰" , 4000F ) ) ; userService. addUser ( new User ( "宋远桥" , 2000F ) ) ; }
}