导入pop.xml依赖包
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.csi</groupId>
<artifactId>springmybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--Spring-->
<!--spring核心包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.18</version>
</dependency>
<!--spring事务管理-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.18</version>
</dependency>
<!--spring aop-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.9.1</version>
</dependency>
<!--MyBatis-->
<!--mybatis核心包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!--mysql驱动类-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- 数据连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
<!-- 分页组件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
<!--Spring MyBatis-->
<!--
https://mvnrepository.com/artifact/org.mybatis/mybati
s-spring -->
<!--MyBatis和Spring整合包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.18</version>
</dependency>
<!--日志-->
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
</dependencies>
</project>
<?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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--配置IoC的驱动注解-->
<context:component-scan base-package="com.lys" />
<!--加载属性配置文件-->
<context:property-placeholder location="jdbc.properties" file-encoding="UTF-8" />
<!--数据源:选择druid作为数据源配置-->
<bean id="dataSource"
class="com.alibaba.druid.pool.DruidDataSource">
<property name="username" value="${user}" />
<property name="password" value="${password}"/>
<property name="url" value="${url}" />
<property name="driverClassName"
value="${driverClass}" />
</bean>
<!--配置MyBatis整合环境-->
<bean id="sessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<!--配置数据源-->
<property name="dataSource" ref="dataSource" />
<!--配置实体类别名-->
<property name="typeAliasesPackage"
value="com.lys.domain" />
<!--找到并加载所有的映射文件-->
<property name="mapperLocations"
value="classpath*:com/lys/mapper/*.xml" />
<!--MyBatis下的其他配置-->
<property name="configuration">
<bean class="org.apache.ibatis.session.Configuration">
<property name="mapUnderscoreToCamelCase" value="true" />
</bean>
</property>
<!--MyBatis下的插件-->
<property name="plugins">
<array>
<!--分页插件-->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<!--数据库方言:mysql-->
<prop key="helpDialect">mysql</prop>
<!--reasonable合理化的分页形
式-->
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
<!--加载mybatis下的mapper接口文件,转化为Spring容器中的bean对象-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.lys.mapper" />
</bean>
<!--事务-->
<!--配置事务管理器-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!--开启aop的注解功能支持-->
<aop:aspectj-autoproxy />
<!--开启事务的注解功能支持-->
<tx:annotation-driven />
</beans>
user=root
password=123456
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL
driverClass=com.mysql.cj.jdbc.Driver
log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
package com.lys.domain;
import java.util.Date;
public class User {
private Integer userid ;
private String username ;
private String password ;
private Date borndate ;
private Date hiredate ;
private double salary ;
public User(Integer userid, String username, String password, Date borndate, Date hiredate, double salary) {
this.userid = userid;
this.username = username;
this.password = password;
this.borndate = borndate;
this.hiredate = hiredate;
this.salary = salary;
}
public User() {
}
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBorndate() {
return borndate;
}
public void setBorndate(Date borndate) {
this.borndate = borndate;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "User{" +
"userid=" + userid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", borndate=" + borndate +
", hiredate=" + hiredate +
", salary=" + salary +
'}';
}
}
package com.lys.mapper;
import com.lys.domain.User;
public interface UserMapper {
void save(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.lys.mapper.UserMapper">
<insert id="save" parameterType="User">
INSERT INTO userinfo (username,password,borndate,hiredate,salary)
VALUE
(#{username},#{password},#{borndate},#{hiredate},#{salary})
</insert>
</mapper>
package com.lys.service;
import com.lys.domain.User;
public interface UserService {
void save(User user);
}
package com.lys.service.impl;
import com.lys.domain.User;
import com.lys.mapper.UserMapper;
import com.lys.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@Service
@Transactional //失败回滚
public class UserServiceImpl implements UserService {
@Autowired
// @Resource(name = "com.lys.mapper.UserMapper")
private UserMapper userMapper ;
@Override
public void save(User user) {
this.userMapper.save(user);
// System.out.println(3 / 0);
}
}
import com.lys.domain.User;
import com.lys.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;
import java.util.Date;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml ")
public class TestUserService {
@Autowired
private UserService userService;
@Test
public void testSave() {
User user = new User();
user.setUsername("张三");
user.setPassword("123456");
user.setBorndate(new Date());
user.setHiredate(new Date());
user.setSalary(2000);
//调用service保存
userService.save(user);
}
}
Mysql->test>user{userid,username,password,borndate,hiredate,salary}
推荐阅读: