MyBatis 详细介绍

JDBC 连接数据库存在的问题

  1. 硬编码的问题,对数据库的操作不够灵活,比如链接数据名,用户名 ,密码 都已经在在代码中被写死
  2. 经常的连接数据库 打开 关闭 对系统整体资源消耗大 造成浪费
  3. sql语句不够灵活,容易写错,遍历查询结构的时候也很麻烦 没有即使返回对象

MyBatis 介绍 架构设计原理

这里写图片描述

sqlMapConfig 数据库链接信息 以及连接池的方式 链接的数据库 用户名 密码 等
mapper.xml 数据库中表的映射 ,一张表对应一个mapper.xml , 是对数据库操作的封装
sqlSession 操作数据库一次会话 , 就是操作数据库对象

环境配置

提示 maven 库地址 http://mvnrepository.com/

1. 配置编译JDK 版本

  <build>
    <plugins>
    <!-- maven的编译插件,用于指定我们jdk的版本 -->
          <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

    </plugins>
</build>

2. 添加依赖mysql , mybatis

<dependencies>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>

    <!-- mybatis的依赖包 -->
    <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.7</version>
    </dependency>

3. 日志包依赖

<dependency>
        <groupId>org.bgee.log4jdbc-log4j2</groupId>
        <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
        <version>1.16</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.13</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>

  <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>

4. 资源文件配置看下图

这里写图片描述

传统Dao的开发模式

接口代理的开发Dao

  1. mapper.xml 中的命名空间 必须是 我们接口全限定类名
  2. sql 语句中的id 必须要跟方法名一致
  3. mapper需要跟接口文件名一致 必须在同一个目录下面
注意事项

SqlMapConfig 配置文件其他内容

1. 别名 在SqlMapConfig.xml 中
  <!-- 别名  将对user全路径的引用简写为 user -->
  <typeAliases  type = "com.ruirui.proxy.User" alias="user"></typeAliases>
2. 批量 通过包的路径 批量命名别名 不区分大小写
<typeAliases>
        <!-- 通过使用typeAliases来命名我们的pojo对象-->
        <!-- <typeAlias type="cn.itcast.pojo.User" alias="user"/> -->
        <!-- 如果使用package的方式来命名我们的别名,只需要拷贝我们指定的包路径就行,然后就可以做我们的别名 -->
        <!-- 使用package这种方式来命名别名,别名就是类名,而且不区分大小写 -->
        <package name="cn.itcast.pojo"/>

    </typeAliases>
3. Mappers映射器 扫描包路径下的所有mapper.xml 文件
  <!-- 通过mappers来指定加载我们对应的mapper文件 -->
          <mappers>
           <!--  <mapper resource="mapper.xml"/> -->
           <!-- <mapper resource="mapper2.xml"/> -->
          <!--  <mapper resource="userMapper3.xml"/> -->
          <!-- 可以通过试用package的方式来指定我们所有的mapper文件的路径在哪里 -->
          <!-- 如果使用package的方式来指定包路径来扫描我们所有的mapper文件,有两点地方要注意
          第一点:我们mapper文件,一定要放到我们指定的位置 ,而且这个指定的位置一定要指定到我们的dao接口所在的包路径
          第二点:我们的mapper文件的命名规范,mapper文件的命名一定要与我们接口的命名相同,只不过后缀不通-->
           <package name="cn.itcast.mybatis.mapper3"/>
          </mappers>
4. 应用外部配置文件 链接数据库

4.1 db.properties

#注意,配置文件中,不要随意打入空格等空字符串
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.52.250:3306/mybatis?characterEncoding=utf-8
username=root
password=admin

4.2 SqlMapConfig.xml 文件内部 引用 db.properties这个文件 引用${ ..} 这种引用的方式 同时也注意覆盖问题

<!-- resource 表示读取外部的配置文件信息来作为我们的数据库连接信息 
    如果通过resource来指定我们外部的配置信息,那么我们外部的配置信息就会覆盖我们本地property当中的值。
-->
    <properties resource="db.properties">
        <property name="driver" value="com.mysql.jdbc.Driversss"/>
        <property name="url" value="${url}"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
    </properties>

    <!-- 这个environments定义了我们的数据库的连接操作 -->
      <environments default="development" >
        <environment id="development">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
          </dataSource>
        </environment>
      </environments>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值