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框架的搭建和基本使用方法的更多相关文章

  1. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

    这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...

  2. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)

    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...

  3. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  4. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  5. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

  6. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)

    引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一   的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...

  7. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目

    一:创建maven web项目er

  8. MyBatis框架的搭建

    前言:MyBatis框架的前身是iBatis,本身是Apache的一个开源项目. MyBatis框架是一个半自动的orm映射框架,是实体类和sql语句之间建立映射关系,sql语句写在单独的配置文件中, ...

  9. MyBatis 框架的搭建和配置

    MyBatis是支持定制化SQL.存储过程以及高级映射的优秀持久层框架.MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集.MyBatis可以对配置和原生Map使用简单的xml或 ...

随机推荐

  1. CSS div阴影效果

    <div class="image"><img src="default.jpg" /></div> .image{box- ...

  2. SQLServer中重建聚集索引之后会影响到非聚集索引的索引碎片吗

    本文出处:http://www.cnblogs.com/wy123/p/7650215.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  3. Window2008 R2(64位)使用codesmith连接Sqlite

    ①打开C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config目录,找到machine.config文件新增 <add name=" ...

  4. vs重装找不到 $(WindowsSdkDir) 配置问题

    vs重装的一个bug,找了一个下午,删了再装vs也没用. 在配置表   HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs ...

  5. Django Cookie 和 Sessions 应用

    在Django里面,使用Cookie和Session看起来好像是一样的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的东西的 ...

  6. jenkins、ant、selenium、testng搭建自动化测试框架

    如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开ec ...

  7. 深入浅出 SpringMVC - 2 提升篇

    前言: 本篇笔记是继 深入浅出 SpringMVC - 1 后的续篇,主要介绍了 SpringMVC 的实际小应用,包括 SpringMVC 的数据格式化.使用 JSR 303 验证标准 在 Spri ...

  8. JavaScript命令模式

    第一,命令模式: (1)用于消除调用者和接收者之间直接的耦合的模式,并且可以对(调用这个过程进行留痕操作) (2)真的不要乱用这个模式,以为他使你简单调用写法变得非常的复杂和有些难以理解. (3)你的 ...

  9. day38(增强类的实现)

    定义一个接口 package com.baidu.test; public interface Person { public abstract void eat(); public abstract ...

  10. Locust性能测试框架,从入门到精通

    1. Locust简介 Locust是使用Python语言编写实现的开源性能测试工具,简洁.轻量.高效,并发机制基于gevent协程,可以实现单机模拟生成较高的并发压力. 主要特点如下: 使用普通的P ...