A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你自己高兴就好 初级黑马   /  2019-6-12 13:37  /  808 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.Mybatis简介


        
    • 什么式Mybatis
        

           
      • mybatis是一个优秀的基于Java的持久层的框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动,创建连接等繁杂的操作;
           
      • mybatis通过xml或者注解的方式将要执行的各种statement配置起来,并通过Java对象和statement中sql的动态参数进行映射生成最终执行的sql语句;
           
      • 最后mybatis执行sql并将结果映射为Java对象返回,采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,
          
        
    • mybatis开发步骤:
        

           
      • 添加mybatis的坐标
           
      • 创建数据库表格
           
      • 创建数据表格对应的Java实体类
           
      • 编写mybatis的映射文件xxxMapper.xml(例如UserMapper.xml
           
      • 编写mybatis的核心配置文件SqlMapConfig.xml
           
      • 测试

    增删改查映射配置与API:
    查询数据: List<User> userList = sqlSession.selectList("userMapper.findAll");
        <select id="findAll" resultType="com.itheima.domain.User">
            select * from User
        </select>
    添加数据: sqlSession.insert("userMapper.add", user);
        <insert id="add" parameterType="com.itheima.domain.User">
            insert into user values(#{id},#{username},#{password})
        </insert>
    修改数据: sqlSession.update("userMapper.update", user);
        <update id="update" parameterType="com.itheima.domain.User">
            update user set username=#{username},password=#{password} where id=#{id}
        </update>
    删除数据:sqlSession.delete("userMapper.delete",3);
        <delete id="delete" parameterType="java.lang.Integer">
            delete from user where id=#{id}
        </delete>

        
    • 映射文件的约束头:
    <?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">

    MyBatis常用配置解析
    1)environments标签
    数据库环境的配置,支持多环境配置

    其中,事务管理器(transactionManager)类型有两种:
    •JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
    •MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为。
    其中,数据源(dataSource)类型有三种:
    •UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。
    •POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来。
    •JNDI:这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用

    2)mapper标签
    该标签的作用是加载映射的,加载方式有如下几种:
    •使用相对于类路径的资源引用,例如:
    <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
    •使用完全限定资源定位符(URL),例如:
    <mapper url="file:///var/mappers/AuthorMapper.xml"/>
    •使用映射器接口实现类的完全限定类名,例如:
    <mapper class="org.mybatis.builder.AuthorMapper"/>
    •将包内的映射器接口实现全部注册为映射器,例如:
    <package name="org.mybatis.builder"/>

    3)Properties标签
    实际开发中,习惯将数据源的配置信息单独抽取成一个properties文件,该标签可以加载额外配置的properties文件

    4)typeAliases标签
    类型别名是为Java 类型设置一个短的名字

    MyBatis相应API
    SqlSession工厂构建器SqlSessionFactoryBuilder
    常用API:SqlSessionFactory  build(InputStream inputStream)
    通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象


    SqlSession工厂对象SqlSessionFactory
    SqlSessionFactory 有多个个方法创建SqlSession 实例

    SqlSession会话对象
    SqlSession 实例在 MyBatis 中是非常强大的一个类。在这里你会看到所有执行语句、提交或回滚事务和获取映射器实例的方法。








0 个回复

您需要登录后才可以回帖 登录 | 加入黑马