mybatis复习

一. MyBatis

 

1. MyBatis简介

·MyBatis前身是iBatis,本是Apache的一个开源的种类

·ORM框架

·实体类与SQL语句之间确立映射关系

2. MyBatis特点

·基于SQL语法,简单易学

·能了解底层封装过程

·SQL语句封装在部署文件被,便于统一管理及维护,降低程序的耦合度

·方便程序代码调试

3. 搭建MyBatis开发条件

 

1.生载mybatis-3.2.2.jar包并导入工程

2.辑MyBatis核心配置文件(configuration.xml)

3.创立实体类-POJO

4.DAO层-SQL映射文件(mapper.xml)

5.创建测试类

读取核心配置文件mybatis-config.xml

创办SqlSessionFactory对象,读取配置文件

创建SqlSession对象

调用mapper文件进行多少操作

 

4. MyBatis框架优缺点

4.1优点

·与JDBC相比,减少了50%以上之代码量

·最简单易行的持久化框架,小巧并略易学

·SQL代码从程序代码中干净分手,可选用

·提供XML标签,支持编写动态SQL

·提供映射标签,支持对象同数据库的ORM字段映射

4.2缺点

·SQL语句编写工作量非常,对开发人员有一定要求

·数据库移植性差

5. MyBatis基本要素

·MyBatis的主干目标

SqlSessionFactoryBuilder

SqlSessionFactory

SqlSession

·mybatis-config.xml  系统核心配置文件

·mapper.xml  SQL映射文件

 

6. 核心目标

6.1SqlSessionFactoryBuilder

·用过就丢,其生命周期只存在为法体内

·可重复用其来创造多个 SqlSessionFactory
实例

·负责构建SqlSessionFactory,并提供多只build方法的重载

·读取XML文件构造方式:

String resource = “mybatis-config.xml”;   

InputStream is = Resources.getResourceAsStream(resource);   

SqlSessionFactory sqlSessionFactory = new
SqlSessionFactoryBuilder().build(is);

 

6.2SqlSessionFactory

·SqlSessionFactory是每个MyBatis应用之核心

·作用:创建SqlSession实例

     SqlSession session = sqlSessionFactory.openSession(boolean
autoCommit);

·作用域:Application

·生命周期与用的生命周期相同

·单例

留存被全体应用运行时,并且以就在一个目标实例

6.3SqlSession

·包含了履行SQL所用的所有办法

·对应一破数据库会话,会话结束得关闭

·线程级别,不能够共享

 

SqlSession session = sqlSessionFactory.openSession();

try {

      // do work

} finally {

     session.close();

}

留神  在SqlSession里可执行多次SQL语句,但假如关闭了SqlSession就用更创设

 

 

 

6.4SqlSession的收获方式

 

String resource = “mybatis-config.xml”;   

InputStream  is = Resources.getResourceAsStream(resource);   

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is) ;

SqlSession sqlSession = factory.openSession();

6.5SqlSession的鲜栽采取方法

·通过SqlSession实例直接运行映射的SQL语句

·基于Mapper接口方式操作数据

 

7.系统核心配置文件

7.1  mybatis-config.xml 系统核心配置文件

·configuration 配置

·properties    可以安排当Java 属性配置文件被

·settings    修改 MyBatis 在运行时之所作所为方式

·typeAliases   为 Java 类型命名一个号(简称)

·typeHandlers   类型处理器

·objectFactory   对象工厂

·plugins   插件

·environments   环境

·environment   环境变量

·transactionManager  事务管理器

·dataSource   数据源

·mappers    映射器

在意元素节点的各个!

 

<?**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"*&gt;**
*<!–彻底节点,XMl只能有一个–> <configuration>
    <
settings>
        <!–二级缓存–>
        
<
setting name=”cacheEnabled” value=”true”**/>

    </settings>
    <!–一个environments有N个environment–>
    
<typeAliases>
        <package
name=”cn.bdqn.entity”></package>
    </typeAliases>
    <environments default=”development”>
        <environment id=”development”>
            <!–
           transactionManager:JDBC保证工作之
           update
           delete
           事务分类:JDBC:编程式事务
                       xxx.beginTransaction()
                       tx.commit()
                       tx.rollback()
                     配置式事务
                     JDBC|MANAGED
                     区别
           –>
            
<transactionManager
type=”JDBC”></transactionManager>
            <!–
               POOLED:MyBatis内置的连接池
               c3p0连接池
                       POOLED 、UNPOOLED  、JNDI
           –>
            
<dataSource type=”POOLED”>
                <property name=”driver”
value=”com.mysql.jdbc.Driver”/>
                <property name=”url”
value=”jdbc:mysql:///blog”/>
                <property name=”username”
value=”root”/>
                <property name=”password”
value=”1234″/>
            </dataSource>
        </environment>
    </environments>
        <mappers>
           <!– <package
name=”cn.bdqn.dao”></package>–>
            
<mapper
resource=”cn/bdqn/dao/DeptMappr.xml”></mapper>
            <mapper
resource=”cn/bdqn/dao/Ibndao.xml”></mapper>
            <mapper
resource=”cn/bdqn/dao/IEmpDAO.xml”></mapper>
            <mapper
resource=”cn/bdqn/dao/ICategoryDAO.xml”></mapper>
            <mapper
resource=”cn/bdqn/dao/ITeacher.xml”></mapper>
        </mappers>
        </configuration>

 

7.2  小配置

<?**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"*&gt;**
**<!–namespace:
     命名空间:区分不同空中下之同名SQLID
     A: findlAll
     B:  findAll
    –>

<mapper namespace=”cn.bdqn.dao.IDeptDao”>
    <cache/>
    
<!–SQL标签
      id:唯一锁定到SQL标识
      paramenterType:SQL语句之称参  可以概括
      resultType:
      增删除操作:不能够 写
      查询:单个实体的档次
    –>
<sql id=”aa”>
    blogId,blogAuthor,blogAddress,blogDel
</sql>
    <resultMap id=”DeptMap” type=”Dept”>
        
<!–<result column=”BlogAuthorr”
property=”blogAuthor”/>–>
    </resultMap>
    
<!–查询所有–>
    <select id=”getAll”  resultMap=”DeptMap”>
  /\
SQL文:SQL语句*/
        SELECT <include
refid=”aa”></include>FROM  bloginfo
    </select>

</mapper>

 

8.总结

 

 

9.附git完整事例代码一份

https://github.com/qjtlovezch/Y2165/tree/master/\_02MyBatis

网站地图xml地图