使用MyBatis如何实现刀开发

  介绍

本篇文章为大家展示了使用MyBatis如何实现刀开发,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> 1. SqlSession使用范围

<强> 1.1 SqlsessionFactoryBuilder

通过SqlsessionFactoryBuilder创建会话工厂SqlSessionFactory,将SqlsessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlsessionFactoryBuilder。

在需要创建SqlSessionFactory时候,只需要新一次SqlsessionFactoryBuilder即可。

<强> 1.2 SqlSessionFactory

通过SqlSessionFactory创建SqlSession,使用单例模式管理SqlSessionFactory(工厂一旦创建,使用一个实例)。

将来MyBatis和春天整合后,使用单例模式管理SqlSessionFactory。

<强> 1.3 SqlSession

SqlSession是一个面向用户(程序员)的接口。

SqlSession提供了很多操作数据库的方法,如:selectOne(返回单个对象),selectList(返回单个或多个对象)。

SqlSession是线程不安全的,在SqlSession实现类中除了有接口中的方法(操作数据库的方法)还有数据域属性。

SqlSession最佳应用场合在方法体内,定义成局部变量使用。

<强> 2.1思路

程序员需要写刀接口和刀实现类。

需要向刀的实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建SqlSession。

<强> 2.2刀接口

公共接口UserDao {//根据id查询用户信息
  公共用户findUserById (int id)抛出异常;//添加用户信息
  公共空间insertUser用户(用户)抛出异常;//删除用户信息
  公共空间deleteUser (int id)抛出异常;
  }

2.3刀接口实现类

公共类UserDaoImplTest {
  私人SqlSessionFactory SqlSessionFactory;
  @Before
  公共空间设置()抛出IOException {//创建sqlSessionFactory//mybatis配置文件
  字符串资源=癝qlMapConfig.xml";//得到配置文件流
  InputStream InputStream=Resources.getResourceAsStream(资源);//创建会话工厂,传入mybatis的配置文件信息
  sqlSessionFactory=new SqlSessionFactoryBuilder () .build (inputStream);
  }
  @Test
  公共空间findUserByIdTest()抛出异常{
  UserDao UserDao=new UserDaoImpl (sqlSessionFactory);
  用户用户=userDao.findUserById (1);
  System.out.println(用户);
  }
  }

<强> 2.5总结原始刀开发问题

(1)刀接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员工作量。

(2)调用sqlSession方法时将声明的id硬编码了。

(3)调用sqlSession方法时传入的变量,由于sqlSession方法使用泛型,即使变量类型传入错误,在编译阶段也不报的错,不利于程序员开发。

<强> 3.1思路(mapper代理开发规范)

程序员需要编写mapper.xml映射文件

程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成映射器接口实现类代理对象。

<强>开发规范:

(1)在映射器。xml名称空间中等于映射器接口地址

使用MyBatis如何实现刀开发

(2) mapper.java接口中的方法名和mapper.xml中声明的id一致

(3) mapper.java接口中的方法输入参数类型和mapper.xml中声明的parameterType指定的类型一致。

(4) mapper.java接口中的方法返回值类型和映射器。xml中声明的resultType指定的类型一致。

使用MyBatis如何实现刀开发