Mybatis使用小结

《诗经》有言:“靡不有初,鲜克有终。”

今天第一次使用Mybatis,感觉还不错,下面就今天的学习情进行一番总结。

什么是Mybatis框架
MyBatis 本是apache的一个开源项目Ibatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis是ORM框架的一种实现, ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。
只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。当前ORM框架主要有三种:Hibernate,iBATIS(Mybatis),EclipseLink
 。

简单的来说,Mybatis就是负责数据库操作部分的框架。

Mybatis体系结构主要分为以下几个关键部分:

1、加载配置。Mybatis讲sql的配置信息加载成一个个MappedStatement对象(包括了传入参数映射配置、执行的Sql语句、结果映射配置),并且将其存储在内存中。MappedStatement类在Mybatis框架中用于表示XML文件中一个sql语句节点,即一个<select />、<update />或者<insert />标签。Mybatis框架在初始化阶段会对XML配置文件进行读取,将其中的sql语句节点对象化为一个个MappedStatement对象

2、sql解析。当API接口层接收到调用请求时,会接受到传入SQL的ID和传入对象(可以是MapJavaBean,或者基本数据类型)MyBatis会根据Sql的ID找到相应的MappedStatement进行解析,解析后可以得到最终要执行的Sql语句和参数。

3、sql执行。将sql语句和参数拿到数据库执行,得到执行结果。

4、结果映射。将结果按照映射的配置进行转换,可以转化为HashMap、JavaBean或者基本数据类型,兵将结果进行返回。

Mybatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory再根据配置文件(xml形式,MyBetis.xml作为主配置文件,用于指定数据库连接参数和框架参数;userMapping.xml用于定义sql语句和映射信息)获取SqlSession,而后就可以使用SqlSession包含的执行sql语句的方法,完成对数据的操作和事物的提交,用完之后直接关闭数据库。

框架的核心api包括

SqlSessionFactoryBuilder:该对象负责根据MyBatis配置文件MyBetis.xml 构建SqlSessionFactory实例

SqlSessionFactory:每一个Mybatis的应用程序都以一个SqlSessionFactory对象为核心。该对象负责创建SqlSession对象实例

SqlSession:该对象包含了执行所有执行sql语句的方法,用于执行已经映射的sql语句。

接下来就是Mybatis框架的使用步骤:

1、搭建Mybatis应用环境

(1)导入所需的jar包


(2)创建主配置文件---MyBetis.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="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/school?characterEncoding=UTF-8" />
				<property name="username" value="root" />
				<property name="password" value="123456" />
			</dataSource>
		
		</environment>
	</environments>

</configuration>
每次使用时只需要更换数据库名称就可以了。

(3)创建用户实体类


(4)创建映射文件---userMapping.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="wei.mapping.userMapping">
<!-- id是这个操作的唯一标志,<pre name="code" class="html">parameterType是进行操作所需要的参数类型,<pre name="code" class="html">resultType操作结束后返回值类型
-->

 <select id="getUser" parameterType="int" resultType="wei.model.User">select * from user where id=#{id}</select><select id="getAll" resultType="wei.model.User">select * from user</select><select id="delUser" parameterType="int">delete from user where id=#{id}</select><update id="update" parameterType="wei.model.User">update user set name=#{name},password=#{password},tel=#{tel},email=#{email} where id=#{id}</update><insert id="insert" parameterType="wei.model.User">insert into user(name,password,tel,email) values(#{name},#{password},#{tel},#{email})</insert></mapper> 
 
 (5)创建数据库访问组建we.dao.impl.UserDaoImpl 
 

 (6)在MyBetis.xml文件中注册userMapping.xml文件

2、获取SqlSession对象

3、进行简单测试


结果:

数据库表;


总的来说,框架使用起来还是很方便的,就是配置有点麻烦。经过测试,我的配置还是没有问题的,接下来就可以通过编写代码体验框架带来的便捷了。

今天就先写到这里,随后再继续学习、更新。





























































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值