首页 > 其他 > 详细

MyBatis 简单笔记

时间:2020-01-07 19:00:54      阅读:90      评论:0      收藏:0      [点我收藏+]

本文仅简单介绍MyBatis,以官方为准,不涉及spring框架相关

引入jar包

通过导入mybatis-x.x.x.jar包来引入MyBatis,或者使用maven进行导入。

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

核心类及其生命周期

在MyBatis中,有SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession,映射器实例类四个较为核心的类。

  1. SqlSessionFactoryBuilder Mybatis按照工厂模式进行核心对象的创建,那么也得先有一个工厂,这个类就是从xml配置文件或其他的文件流中获取配置信息,或者通过Resources类来从calsspath或其他地方来获取配置信息,来构造工厂类。该类在构造完工厂后就失去了作用。
  2. SqlSessionFactory MyBatis的核心类,是连接数据库和程序的桥梁,是一个数据库的连接池,应用可以从工厂中获取SqlSession使用,工厂的生命周期和程序的生命周期应一样长,且只有一个工厂对象,才能保证数据库资源不被无序占用。
  3. SqlSession 这是MyBatis的执行类,应用在执行数据库操作时,需向工厂类申请一个会话连接,在该会话中执行一系列数据库操作,然后结束会话。该类的普通对象是线程不安全且会占用连接资源的,该类应与应用中的一项操作的前后周期相对应,因此最好仅存在于一个方法中,随用随申请,并随一项操作的结束而关闭会话。可以使用try..catch..finally语句处理该类。
  4. SQLMapper映射器实例 这是绑定了SQL映射语句的接口,实际的数据操作对象。该对象从sqlSession对象中获得,因此其生命周期应小于SqlSession。
    如果使用MyBatis-Spring等框架,将mybatis对象的生命周期交由注入框架进行托管,那一般不用管这些类的生命周期,后顾之忧交给框架即可。

基本参数配置

XML方法

仅使用MyBatis

参考XML文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development"><!--一个配置中,可以定义多个环境,例如针对开发/测试/生产的不同配置-->
    <environment id="development"><!--具体的环境的配置-->
      <transactionManager type="JDBC"/><!--事物管理引擎配置-->
      <dataSource type="POOLED"><!--数据源配置,数据库池类型-->
        <property name="driver" value="${driver}"/><!--数据库驱动-->
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/><!--数据库接口定义XML-->
  </mappers>
</configuration>

数据库接口XML文件:

<?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="org.mybatis.example.BlogMapper"><!--数据库接口映射,以及命名空间声明-->
  <select id="selectBlog" resultType="Blog"><!--数据库查询语句设置,设置ID还有返回类型-->
    select * from Blog where id = #{id}<!--SQL语句,使用#{}进行参数填充,可以为具体的名称或者是变量输入顺序-->
  </select>
</mapper>

XML解析及对象创建代码

String resource = "org/mybatis/example/mybatis-config.xml";#设置XML文件路径
InputStream inputStream = Resources.getResourceAsStream(resource);#通过Resources类解析XML类参数
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);#创建工厂类

使用Spring框架进行注入

代码构建方法

如下列示例代码:

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();#获取数据源,例如数据库驱动、url和用户名密码之类
TransactionFactory transactionFactory = new JdbcTransactionFactory();#获取jdbc事物工厂对象
Environment environment = new Environment("development", transactionFactory, dataSource);#创建Mybatis命名空间
Configuration configuration = new Configuration(environment);#将命名空间加入配置类中
configuration.addMapper(BlogMapper.class);#在配置类中添加数据库映射
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);#使用配置文件构建工厂类

与数据库进行交互

不使用Spring等框架进行注入,手动操作

try (SqlSession session = sqlSessionFactory.openSession()) {#开启会话
  BlogMapper mapper = session.getMapper(BlogMapper.class);#获取接口
  Blog blog = mapper.selectBlog(101);#进行查询
}

使用Spring框架进行注入与对象管理

MyBatis 简单笔记

原文:https://www.cnblogs.com/CoveredWithDust/p/12163031.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!