Mybatis基于SqlSession实现CRUD

简介: 之前我们讲的基于XML还是接口注解配置都是使用接口实现CRUD,本文我们将要讲解通过splsession来实现CRUD,这种方法比较灵活。基本配置 1 2 3 4 5 6 7 ...

之前我们讲的基于XML还是接口注解配置都是使用接口实现CRUD,本文我们将要讲解通过splsession来实现CRUD,这种方法比较灵活。

基本配置

 1  <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
 2     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 3         <property name="dataSource" ref="dataSource" />
 4         <property name="mapperLocations" value="classpath:mapping/*.xml"></property>
 5         <!-- 分页插件 -->
 6         <property name="plugins">
 7             <array>
 8                 <bean class="com.github.pagehelper.PageHelper">
 9                     <property name="properties">
10                         <value>
11                             dialect=mysql
12                         </value>
13                     </property>
14                 </bean>
15             </array>
16         </property>
17     </bean>
18 
19 
20     <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
21         <constructor-arg index="0" ref="sqlSessionFactory" />
22     </bean>
View Code

Mapper实现

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="sysUserMapper">
 4     <select id="SelectOne" parameterType="java.util.HashMap" resultType="java.util.HashMap">
 5     select * from user_ where id = #{id,jdbcType=VARCHAR} limit 0,20
 6   </select>
 7     <select id="SelectProc" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
 8         {call get_user(#{id,jdbcType=VARCHAR})}
 9   </select>
10     <select id="SelectList" parameterType="java.util.HashMap" resultType="java.util.HashMap" >
11         select * from user_
12         <where>
13             <if test="male_ != null and male_!=''">
14                 AND  male_ = #{male_,jdbcType=VARCHAR}
15             </if>
16         </where>
17         limit 0,20
18     </select>
19     <insert id="insert" parameterType="java.util.HashMap">
20         insert into user_test(id, name) values(#{id}, #{name})
21     </insert>
22 </mapper>
View Code

数据实现

首先我们 添加SqlSession 属性注入

1 @Autowired
2     private  SqlSession sqlSession;
View Code

然后我们实现具体的CRUD操作

 1 public Map<String, String> SelectOne(String method,Object Para)
 2     {
 3         return sqlSession.selectOne(method, Para);
 4     }
 5 
 6     public List<Map<String, String>> SelectList(String method,Object Para)
 7     {
 8         return sqlSession.selectList(method, Para);
 9     }
10 
11     public List<Map<String, String>> SelectProc(String method,Object Para)
12     {
13         return sqlSession.selectList(method, Para);
14     }
15 
16 
17     public void  insert(String method,Object Para)
18     {
19         if(Para.getClass().getName().equals("java.util.ArrayList"))
20         {
21             ArrayList list = (ArrayList) Para;
22             for (int i = 0; i < list.size(); i++) {
23                 HashMap hm = (HashMap) list.get(i);
24                 sqlSession.insert(method, hm);
25             }
26         }
27         else
28         {
29              sqlSession.insert(method, Para);
30         }
31     }
32 
33 
34     public void  update(String method,Object Para)
35     {
36         if(Para.getClass().getName().equals("java.util.ArrayList"))
37         {
38             ArrayList list = (ArrayList) Para;
39             for (int i = 0; i < list.size(); i++) {
40                 HashMap hm = (HashMap) list.get(i);
41                 sqlSession.update(method, hm);
42             }
43         }
44         else
45         {
46             sqlSession.update(method, Para);
47         }
48 
49     }
50 
51 
52     public void delete(String method,Object Para)
53     {
54         if(Para.getClass().getName().equals("java.util.ArrayList"))
55         {
56             ArrayList list = (ArrayList) Para;
57             for (int i = 0; i < list.size(); i++) {
58                 HashMap hm = (HashMap) list.get(i);
59                 sqlSession.delete(method, hm);
60             }
61         }
62         else
63         {
64             sqlSession.delete(method, Para);
65         }
66     }
View Code

路由中转操作

 1 public  Object doProess(String BsCode,String Operation, Object Para) {
 2         String method=BsCode.trim()+"."+Operation.trim();
 3        // try {
 4             switch (Operation) {
 5                 case "SelectOne":
 6                     return SelectOne(method, Para);
 7                 case "SelectList":
 8                     return SelectList(method, Para);
 9                 case "SelectProc":
10                     return SelectProc(method, Para);
11                 case "insert":
12                      insert(method, Para);
13                      return 1;
14                 case "update":
15                      update(method, Para);
16                      return 1;
17                 case "delete":
18                      delete(method, Para);
19                      return 1;
20                 default:
21                     return "无相关操作类型";
22 
23             }
24        // }catch (Exception e)
25        // {
26            // return e.getMessage();
27        // }
28     }
View Code

数据验证测试

 1 @RunWith(SpringJUnit4ClassRunner.class)  //使用junit4进行测试
 2 @ContextConfiguration({"classpath:spring-base.xml"})
 3 public class commServiceImplTest {
 4 
 5     @Autowired
 6     private commService commservice;
 7 
 8     @Test
 9     public void selectOne() throws Exception {
10         String bsCode="sysUserMapper";
11         String Operation="SelectOne";
12         Map<String, String> para=new HashMap<String, String>();
13         para.put("id","fjx");
14         Map<String, String> userinfo=(Map<String, String>) commservice.doProess(bsCode,Operation, para);
15         System.out.print(userinfo);
16     }
17 
18    @Test
19     public void doProess2() throws Exception {
20         String bsCode="sysUserMapper";
21         String Operation="SelectProc";
22         Map<String, String> para=new HashMap<String, String>();
23         para.put("id","fjx");
24         Object userinfo=commservice.doProess(bsCode,Operation,para);
25         System.out.print(userinfo);
26     }
27 
28     @Test
29     public void doProess3() throws Exception {
30         String bsCode="sysUserMapper";
31         String Operation="SelectList";
32         Map<String, String> para=new HashMap<String, String>();
33         para.put("male_","1");
34         Object users=commservice.doProess(bsCode,Operation,para);
35         System.out.print(users);
36     }
37 
38 }
View Code

GITHUB

github :  https://github.com/nbfujx/Goku.WebService.Bus

 

目录
相关文章
|
9月前
|
XML Java 数据库连接
二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
283 21
|
SQL Java 数据库连接
MyBatis-Plus:简化 CRUD 操作的艺术
MyBatis-Plus 是一个基于 MyBatis 的增强工具,它旨在简化 MyBatis 的使用,提高开发效率。
468 1
MyBatis-Plus:简化 CRUD 操作的艺术
|
SQL Java 数据库连接
Mybatis方式完成CRUD操作
Mybatis方式完成CRUD操作
182 0
|
缓存 Java 数据库连接
我们后端程序员不是操作MyBatis的CRUD Boy
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天我们接着新的一篇Java进阶指南。为啥都戏称后端是CRUD Boy?难道就因为天天怼着数据库CRUD吗?要我说,是这个岗位的位置要的就是你CRUD,你不得不CRUD。哪有公司天天能给你搭建高并发、高可用、大数据框架的活呢,一条业务线总要成长吧,慢慢成熟了就要装修工来缝缝补补、美化美化,也就是CRUD的活。不能妄自菲薄CRUD Boy,我们是后端工程师。今天来指南下操作数据库之MyBatis框架。
315 3
我们后端程序员不是操作MyBatis的CRUD Boy
MybatisPlus-标准CRUD制作,新增boolean save(T t),删除 ~ delete(int id),修改 ~ update(T t),根据id查询,T getById....
MybatisPlus-标准CRUD制作,新增boolean save(T t),删除 ~ delete(int id),修改 ~ update(T t),根据id查询,T getById....
|
SQL XML Java
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)
197 1
|
SQL Java 数据库连接
MyBatis之魂:探索核心接口SqlSession的神秘力量
MyBatis之魂:探索核心接口SqlSession的神秘力量
196 3
MyBatis之魂:探索核心接口SqlSession的神秘力量
|
SQL Java 关系型数据库
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
346 2
|
SQL Java 数据库连接
Mybatis之SqlSession简析
Mybatis之SqlSession简析
384 0
|
Java 数据库连接 mybatis
使用Mybatis获取sqlSession对象老爆红的问题解决
使用Mybatis获取sqlSession对象老爆红的问题解决