Mybatis框架的搭建和基本使用方法
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框架的搭建和基本使用方法的更多相关文章
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试
这一部分的主要目的是 配置spring-service.xml 也就是配置spring 并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)
用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)
引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一 的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
一:创建maven web项目er
- MyBatis框架的搭建
前言:MyBatis框架的前身是iBatis,本身是Apache的一个开源项目. MyBatis框架是一个半自动的orm映射框架,是实体类和sql语句之间建立映射关系,sql语句写在单独的配置文件中, ...
- MyBatis 框架的搭建和配置
MyBatis是支持定制化SQL.存储过程以及高级映射的优秀持久层框架.MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集.MyBatis可以对配置和原生Map使用简单的xml或 ...
随机推荐
- java中属性,set get 以及如何学习类的一些用法
1,先来看一个例子 package com.tdq.java; public class Run { public static void main(String[]args){ Student st ...
- CPU 分类
Single Core :单核CPU Dual Core :双核CPU Quad Core :四核CPU Hexa Core :六核CPU Octa Core :八核CPU 参考: htt ...
- [Unity]Unity3D编辑器插件扩展和组件扩展
1. 插件扩展 1.1. 命名空间 using UnityEditor; using UnityEngine; //非必需,常用到 1.2. 使用语法 [MenuItem("Assets/M ...
- Log4j按级别输出日志到不同文件配置分析 (转:projava)
关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,in ...
- ubuntu中使用usb-creator制作live usb
1.实验环境 ubuntu14.04 2.启动usb-creator 2.1 单击桌面左上角的搜索图标,输入usb-creator,然后选择“应用程序"中的”启动盘创建器“ 2.2 终端中输 ...
- VUE实现请求数据
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- EsRejectedExecutionException排错与线程池类型
1.EsRejectedExecutionException异常示例 java.util.concurrent.ExecutionException: RemoteTransportException ...
- app启动页问题
今天自己做的小作品准备提交,就差一个启动页,各种百度,各种搜,结果还好最后终于出来了,和大家分享一下,这个过程中遇到的各种小问题.(注XCode版本为7.2) 1.启动页一般都是图片,因为苹果有4,4 ...
- win10 uwp 打包第三方字体到应用
有时候我们会把一些特殊字体打包到软件,因为如果找不到我们的字体会变为默认,现在很多字体图标我们用得好,有时候我们的应用会用很漂亮的字体,需要我们自己打包,因为用户一般是没有字体. UWP使用第三方字体 ...
- 再识QT(1)
2015年的时候开始接触QT,自学了1个月,由于没有项目驱动,也没人指导,最终还是撇下了,水平也仅限于拖拖控件,做一些简单的界面,对QT的内部机制完全是懵逼的.时隔两年,最近由于公司项目需要使用QT, ...