Java基础-SSM之Spring和Mybatis整合案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
在之前我分享过mybatis和Spring的配置案例,想必大家对它们的配置已经很熟悉了,接下来我们把两者结合起来让他们一起来协同工作,帮我们在数据库中插入数据,编程起来是相当的方便。
一.准备环境
1>.案例分析
我们想要把一条数据插入到数据库中,利用Spring和mybatis插件来完成,大致的流程图如下:
2>.数据库配置创建测试数据表
在编程之前,我们需要启动数据库,并在数据库中提前创建出我们需要用到的测试表。创建过程如下:
1 create database yinzhengjie; 2 3 use yinzhengjie; 4 5 create table if not exists users(id int primary key auto_increment,name varchar(20) , age int) ;
二.实操演示
1>.创建新模块,引入Maven依赖
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>cn.org.yinzhengjie</groupId> 8 <artifactId>MySpringMybatis</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <dependencies> 12 <dependency> 13 <groupId>junit</groupId> 14 <artifactId>junit</artifactId> 15 <version>4.11</version> 16 </dependency> 17 <dependency> 18 <groupId>org.springframework</groupId> 19 <artifactId>spring-context-support</artifactId> 20 <version>4.3.5.RELEASE</version> 21 </dependency> 22 <dependency> 23 <groupId>org.springframework</groupId> 24 <artifactId>spring-jdbc</artifactId> 25 <version>4.3.5.RELEASE</version> 26 </dependency> 27 <dependency> 28 <groupId>org.mybatis</groupId> 29 <artifactId>mybatis</artifactId> 30 <version>3.2.1</version> 31 </dependency> 32 <dependency> 33 <groupId>org.mybatis</groupId> 34 <artifactId>mybatis-spring</artifactId> 35 <version>1.3.0</version> 36 </dependency> 37 <dependency> 38 <groupId>c3p0</groupId> 39 <artifactId>c3p0</artifactId> 40 <version>0.9.1.2</version> 41 </dependency> 42 <dependency> 43 <groupId>mysql</groupId> 44 <artifactId>mysql-connector-java</artifactId> 45 <version>5.1.17</version> 46 </dependency> 47 <dependency> 48 <groupId>org.aspectj</groupId> 49 <artifactId>aspectjrt</artifactId> 50 <version>1.6.1</version> 51 </dependency> 52 <dependency> 53 <groupId>org.aspectj</groupId> 54 <artifactId>aspectjweaver</artifactId> 55 <version>1.8.10</version> 56 </dependency> 57 </dependencies> 58 </project>
2>.创建相应的包并编写代码
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.sm.dao; 7 8 import java.util.List; 9 10 /** 11 * Basedao,基本dao 12 */ 13 public interface BaseDao<T> { 14 public void insert(T t) ; 15 public void update(T t) ; 16 public void delete(Integer id) ; 17 public T selectOne(Integer id) ; 18 public List<T> selectAll() ; 19 }
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.sm.dao.impl; 7 8 import cn.org.yinzhengjie.sm.dao.BaseDao; 9 import cn.org.yinzhengjie.sm.domain.User; 10 import org.apache.ibatis.session.SqlSessionFactory; 11 import org.mybatis.spring.support.SqlSessionDaoSupport; 12 import org.springframework.stereotype.Repository; 13 14 import javax.annotation.Resource; 15 import java.util.List; 16 17 /** 18 * 19 */ 20 @Repository("userDao") 21 public class UserDaoImpl extends SqlSessionDaoSupport implements BaseDao<User> { 22 23 public void insert(User user) { 24 getSqlSession().insert("users.insert" , user) ; 25 } 26 27 public void update(User user) { 28 getSqlSession().update("users.update", user); 29 } 30 31 public void delete(Integer id) { 32 getSqlSession().delete("users.deleteOne", id); 33 } 34 35 public User selectOne(Integer id) { 36 return getSqlSession().selectOne("users.selectOne", id); 37 } 38 39 public List<User> selectAll() { 40 return getSqlSession().selectList("users.selectAll"); 41 } 42 43 @Resource(name="sqlSessionFactory") 44 public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { 45 super.setSqlSessionFactory(sqlSessionFactory); 46 } 47 }
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.sm.service; 7 8 import java.util.List; 9 10 /** 11 * Created by Administrator on 2018/7/12. 12 */ 13 public interface BaseService<T> { 14 public void insert(T t); 15 16 public void update(T t); 17 18 public void delete(Integer id); 19 20 public T selectOne(Integer id); 21 22 public List<T> selectAll(); 23 }
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.sm.service.impl; 7 8 import cn.org.yinzhengjie.sm.dao.BaseDao; 9 import cn.org.yinzhengjie.sm.domain.User; 10 import cn.org.yinzhengjie.sm.service.BaseService; 11 import org.springframework.stereotype.Service; 12 13 import javax.annotation.Resource; 14 import java.util.List; 15 16 /** 17 * 用户服务实现类 18 */ 19 @Service("userService") 20 public class UserServiceImpl implements BaseService<User> { 21 22 @Resource(name="userDao") 23 private BaseDao<User> userDao ; 24 25 public void insert(User user) { 26 userDao.insert(user); 27 } 28 29 public void update(User user) { 30 userDao.update(user); 31 } 32 33 public void delete(Integer id) { 34 userDao.delete(id); 35 } 36 37 public User selectOne(Integer id) { 38 return userDao.selectOne(id); 39 } 40 41 public List<User> selectAll() { 42 return userDao.selectAll(); 43 } 44 }
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie.sm.domain; 7 8 /** 9 */ 10 public class User { 11 private Integer id; 12 private String name; 13 private int age; 14 15 public Integer getId() { 16 return id; 17 } 18 19 public void setId(Integer id) { 20 this.id = id; 21 } 22 23 public String getName() { 24 return name; 25 } 26 27 public void setName(String name) { 28 this.name = name; 29 } 30 31 public int getAge() { 32 return age; 33 } 34 35 public void setAge(int age) { 36 this.age = age; 37 } 38 }
3>.
4>.
5>.
6>.
7>.
原文:https://www.cnblogs.com/yinzhengjie/p/9298084.html