码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis框架的搭建和基本使用方法

时间:2017-10-09 23:56:18      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:执行   连接   package   type   运行   ges   方式   builder   factor   

1.1MyBatis的下载

最新yBatis可以在github官网上下载:

https://github.com/mybatis/mybatis-3

1.2 Mybatis Jar

技术分享

 

1.3MyBatis工作原理

技术分享

1.4Mybatis的整个的执行流程

技术分享

 

 MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。

2.第一个Mybatis程序

2.1、建立java项目

2.2、建立student表(id,name,age,socre)

技术分享

 

2.3、定义实体Student

 技术分享

 

2.4、定义接口IStudentDao

 技术分享

2.5.1、定义主配置文件

在pdf中搜索”mybatis-3-config.dtd”关键字,即可找到映射文件的约束。

 技术分享

技术分享

2.5.2主配置文件详解

1)注册DB连接四要素属性文件

2)指定实体类全限定性类名的别名

对于实体类的全限定性类名的别名指定方式,一般合用<package/>方式,这样做的好处是会将该包中所有实体类的简单类型名指定为别名,写法简单方便

<!--<typeAlias type="com.jet.bean.Student" alias="Student" /> -->

<!--将指定包中所有类的简单类型类名当做其别名  -->

<package name="com.jet.bean" />

3)指定映射文件

方式一:

<mappers>

    <mapper resource="com/jet/dao/StudentMapper.xml"/>

</mappers>

方式二:

<mappers>

    <mapper class="com.jet.dao.IStudentDao"/>

</mappers>

此方式,需要满足以下几个要求:

1)  映射文件名要与dao接口名称相同

2)  映射文件要与接口在同一包中

3)  映射文件中的<mapper />的namespace属性值为dao接口的全类名

<mapper namespace="com.jet.dao.IStudentDao ">

<insert id="insertStu" >

Insert into student(name,age,score)values(#{name},#{age},#{score});

</insert>

</mapper>

方式三:           

当映射方件较多时,也可以使用如下形式。其中package的name属性指定映射文件所放的包。

<mappers>

<package name="com.jet.dao"/>

</mappers>

这种方式的使用需要满足以下几个条件:

1)  dao使用mapper动态代理实现

2)  映射文件名要与dao接口名称相同

3)  映射文件名与接口在同一包中

4)  映射文件中的<mapper />的namespace属性值为dao接口的全类名

 

2.5.3从属性文件中读取jdbc的相关连接信息——创建主属性文件

技术分享

2.6、定义映射文件mapper.xml,名称无所谓,一般放在接口下面,在pdf中查找”mabatis-3-mapper”dtd约束

 技术分享

2.7.1、定义Dao的实现类

 

技术分享

 

2.7.2、 API详解

Dao中需要通过SqlSession对象来操作DB,而SqlSession对象的创建,需要其工厂对象SqlSessionFactory。SqlSessionFactory对象需要通过其构建器对象SqlSessionFactoryBuilder的build()方法,在加载了主配置文件的输入流对象后创建。

(1)   Resource类

用于读取资源文件,其有很多方法通过加载并解析资源文件,返回不同类型的IO流对象。

(2) SqlSessionFactoryBuilder类

SqlSessionFactory的创建,需要使用SqlSessionFactoryBuilder对的build()方法。

(3) SqlSessionFactory

SqlSessionFactory接口对象是一个重量级对象(系统开销大的对象),是线程安全的,所以一个应用只需要一个该对象即可。创建SqlSession需要使用SqlSessionFactory接口的openSession()方法。

(4)SqlSession接口

SqlSession接口用于持久化操作。一个SqlSession对应着一次数据库会话,一次会话以SqlSession对象的创建开始,以SqlSession对象的关闭结束。

SqlSession接口对象是线程不安全的,所以每次数据库会话结束前,需要马上调用其close()方法,将其关闭。再次需要会话,再次创建。

而在关闭时会判断当前SqlSession是否被提交;若没有被提交,则会执行回滚。若已被提交,则直接将SqlSession关闭。

2.7.8、源码分析

1、输入流的关闭Resources

2、SqlSession的创建

3、增删改查的执行

4、SqlSession的commit()

5、Sqsession的close

2.8、定义测试类

技术分享

 

2.9、添加日志控件文件

技术分享

2.10、使用junit运行测试类,成功插入数据到数据库

 

Mybatis框架的搭建和基本使用方法

标签:执行   连接   package   type   运行   ges   方式   builder   factor   

原文地址:http://www.cnblogs.com/fangjet/p/7639606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!