JavcEE简单实例——封装MyBatis获取SqlSession的工具类

简单介绍:

在我们之前编写代码的时候,每次创建新的测试类都需要手动的编写获取SqlSession类的代码语句,这些重复的代码可以抽取成为一个工具类中的方法,可以方便快捷的进行代码的开发,提高我们的效率

使用方法:

使用方法非常简单,就是将重复的获取对象的方法抽取出来封装进一个类的方法中,可以直接获取连接对象。

代码实现:

在我们的com.mybatis.POJO包下面创建一个Tools工具包,在这个包里面创建一个createSqlSession类,我们创建对象的语句就写在这个类的方法中:

package com.mybatis.POJO.Tools;

import Mappers.select;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class createSqlSession {
//    获取SqlSession对象
    public SqlSession create(){
        try {
            InputStream stream = Resources.getResourceAsStream("mybatis.xml");
            SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);
//            在获取SqlSession对象的时候,传递一个true
            return build.openSession(true);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
//    在接口化开发中获取接口对应的mapper代理对象,使用方法直接操作数据库
    public select createMapper(){
        SqlSession session = new createSqlSession().create();
        return session.getMapper(select.class);
    }
}

 需要注意的是在我们使用openSession创建SqlSession对象的时候可以传入一个true的参数,表示将自动提交事务,在使用的时候就不需要我们手动提交事务了。

开始测试:

我们使用insert语句和delete语句进行测试,测试插入和删除一条记录时候的效果:

package Mappers;

import com.mybatis.POJO.Tools.createSqlSession;
import com.mybatis.POJO.student;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class Test {
//    将需要用到的两个对象提取出来,方式重复创建对象
    SqlSession session = null;
    select mapper = null;
    @org.junit.Test
    public void insertOne(){
//        使用刚才封装的工具类获取session对象
        session = new createSqlSession().create();
//        插入一条数据
        student s = new student(4,"赵六","123456");
        int insert = session.insert("Mappers.select.insertInto",s);
        if(insert > 0){
            System.out.println("插入成功!");
            System.out.println("展示数据:");
            List<student> list = session.selectList("Mappers.select.selectAll");
            for(student stu : list){
                System.out.println(stu.toString());
            }
        }else {
            System.out.println("插入失败");
        }
    }
    @org.junit.Test
//    测试删除语句的时候使用接口化开发的方式
    public void deleteOne(){
//        获取映射文件对应的接口文件,通过调用接口中的方法可以直接操作SQL映射文件中的唯一标识与接口中的方法同名的SQL语句
        mapper = new createSqlSession().createMapper();
        int i = mapper.deleteOne(4);
        if(i > 0){
            System.out.println("删除成功!");
            System.out.println("展示数据:");
            for (student student : mapper.selectAll()) {
                System.out.println(student.toString());
            }

        }else {
            System.out.println("删除失败!");
        }
    }
}

运行结果:

 

封装工具类的意义就是帮助我们完成一些重复的代码,将一些复杂的代码封装起来,让我们无需关心其中的具体实现,而是只需要知道输入何种参数达到何种效果即可

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值