MyBatis入门详解

释义

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录

简单来概括,MyBatis就是将JDBC变得更加灵活、更加高效。避免了传统JDBC的sql语句高度重复的缺点,大大提高了代码的效率。

下载

MyBatis最先属于Apache,后来转到Google code下,于2013年迁移到GitHub。
可到MyBatis官网进行下载,个人建议不要下最新版的MyBatis,老一点的版本更加稳定安全。MyBatis

使用

MyBatis既可单独使用,也可以与其他框架共同使用进行开发。
如SSM(Spring MVC、Spring、MyBatis),使后台程序的开发变得增加高效统一

图解组成

在这里插入图片描述

config.xml文件

config.xml文件是配置MyBatis需要的数据库驱动包以及数据库的各种信息等

<?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>
 <typeAliases>
   <package name="com.how2java.pojo"/>
 </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/数据库名?characterEncoding=UTF-8"/>
                <property name="username" value="admin"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/how2java/pojo/Category.xml"/>
    </mappers>
</configuration>

配置文件
配置文件节点顺序不能颠倒
配置文件xml
configuration:根节点
properties:属性
settings:设置
typeAliases:类型命名
typeHandlers:类型处理器
objectFactory:对象工厂
plugins:插件
environments:配置环境
environment:环境变量
transactionManager:事务管理器
dataSource:数据源
databaseIdProvider:数据库厂商标识
mappers:对象映射器

Mapper映射文件

MyBatis强大的一个原因就是因为它的映射的功能,可以减少传统的JDBC 90%的代码
映射器,由java和xml文件构成,构造映射规则,发送SQL,执行完后返回结果

<?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="com.how2java.pojo">
  <resultMap type="Category" id="categoryBean">
   <id column="cid" property="id" />
   <result column="cname" property="name" />
 
   <!-- 一对多的关系 -->
   <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->
   <collection property="products" ofType="Product">
    <id column="pid" property="id" />
    <result column="pname" property="name" />
    <result column="price" property="price" />
   </collection>
  </resultMap>
 
  <!-- 关联查询分类和产品表 -->
  <select id="listCategory" resultMap="categoryBean">
   select c.*, p.*, c.id 'cid', p.id 'pid', c.name 'cname',
    p.name 'pname' from category_ c left join product_ p on c.id = p.cid
  </select>    
 </mapper>

typeHandler:类型转换器
用于承担 数据库与java之间的类型转换,jdbcType–javaType,mybatis会进行自动处理
在这里插入图片描述

生命周期

SqlSessionFactoryBuilder用于创建SqlSessionFactory,创建成功后即失效 SqlSessionFactory等同于多个数据库的连接池(整个mysql),在整个mybatis的生命周期中,如果创建多个,则会耗光连接池,造成应用崩溃,所以一般为单例模式,整个应用进行共享
SqlSession对应单个数据库进行的命令操作,如果使用完,则会把链接返还给SqlSessionFactory连接池
Mapper由session创建, 一个mapper请求对应一个业务处理

总结

MyBatis框架在公司大量重复性极高的开发代码中起到了极大的作用,它大大减少了繁重的重复代码量,提高了代码的效率。
同时MyBatis也是现在程序开发中最热门的框架之一,学习MyBatis对于我们开发大型项目带来了不可估量的作用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值