继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Mybatis入门学习(1)

慕的地10843
关注TA
已关注
手记 1081
粉丝 200
获赞 962

初识Mybatis

传统JDBC开发模式的痛点:

  • 连接参数、SQL语句的硬编码

  • 数据库的频繁连接与断开

  • 查询结果集取数据的硬编码
    如:

//一旦表内容发生更改需要对Java代码进行更改,并重新编译、发布,而且这样写的过程繁琐,不易维护。while(rs.next){
    Teacher teacher = new Teacher();
    teacher.setNumber(rs.getInt("number"));
    teacher.setName(rs.getName("name"));
    ....    list.add(teacher);
}

Mybatis的优点也就显现出来:

  • SQL映射配置文件:将SQL语句配置在XML或其他非Java的配置文件中,这样即使SQL发生变化,也不需要重新编译Java文件。

<!--Mybatis提供了一种配置文件Mapper.xml(名字可更改),这里取名Mapper.xml, 部分代码如下--><mapper namespace="test">
    <!--parameterType为输入参数的类型,resultType指定了输出结果集的Java对象类型,这里将结果参数配置表示将单条记录映射成一个Java对象-->
    <select id="findUserById" parameterType="int" resultType="cn.com.mybatis.model.User">
        SELECT * FROM USER id=#{id}    </select></mapper>
<!--在数据源配置文件如: SqlMapConfig.xml中配置Mapper.xml的文件路径--><mappers>
    <mapper resource="classpath:mapper/UserMapper.xml"/></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"><configuration>

  <!-- 引入外部配置文件 -->
  <properties resource="jdbc.properties"></properties>
  
  <!-- 为JAVA Bean起类别名 -->
   <typeAliases >
        <!-- 别名方式1,一个一个的配置 type中放置的是类的全路径,alias中放置的是类别名
        <typeAliase type="com.cy.mybatis.beans.UserBean" alias="UserBean"/> -->
        <!-- 别名方式2,自动扫描,将JAVA类的类名作为类的类别名 -->
        <package name="com.wenyin.mybatis.beans"/>
   </typeAliases>
   <!-- 配置mybatis运行环境 -->
     <environments default="cybatis">
        <environment id="cybatis">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />
            
            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments> 
    
     
     <mappers>
        <!-- 告知映射文件方式1,一个一个的配置
        <mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/>-->
        <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件 -->
        <package name="com/wenyin/mybatis/mapper"/>
    </mappers>
     </configuration>
  • 会话工厂和会话
    这里最好去看英文比这好理解,SqlSessionFactory和SqlSession,上面的数据源配置文件相当于一份产品说明书,通过SqlSessionFactory查看说明书,生产出相应的产品SqlSession,所以SqlSession就是SqlSessionFactory的一个实例类


    webp

    Mybatis运行流程图.jpg



作者:LeaveStyle
链接:https://www.jianshu.com/p/e10a4304d23b


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP