Mybatis的案例和接口代理开发和模板配置

Mybatis的简单入门案例

一、框架的简介和Mybatis简介

​ 框架就是一个半成品,在框架的基础上进行开发可以大大的提高开发效率,减少代码量。

​ 框架就相当于地基,使用框架开发就相当于在地基上添砖加瓦即可。

​ Dbutils:数据库工具类

工具类和框架的区别:

​ 工具类:是某种功能的代码封装

​ 框架:是对开发某层的深度封装。

​ 例如:Mybatis是对Dao层的深度封装

三层架构

​ 为什么要使用分层开发?

​ 降低开发难度,提高效率,实现模块间的解耦。

​ 耦合:模块间的关联程度。耦合分高低。

​ 开发追求高耦合、低内聚,降低耦合的过程就叫做解耦

二、Mybatis简介

​ Mybatis是一个轻量级的DAO层框架。

​ 特点:轻量级、体积小、开发代码量少

​ Mybatis是基于ORM思想架构的

​ ORM(Object Relationship Mapping):对象数据关系映射.

映射的具体含义:(ORM是双向映射)

​ 数据库的一张表 对应一个java类

​ 数据库的一行记录对应一个java对象

​ 数据库的一个字段对应一个java对象的属性

​ 数据库的多条记录对应一个集合对象

三、Mybatis入门案例

ORM思想:

​ SQL语句提取到xml中或者注解,实现解耦,提高生产环境的热部署,不再使用JDBCAPI,Mybatis对JDBCAPI进行了封装。

​ 开发步骤:

​ 1.建立普通的maven工程

​ 2.建库建表

​ 3.编写java实体类

​ 4.编写Mybatis的主配置文件:

​ 配置Mybatis的运行环境:

<!-- 引入Mybatis主配置文件的dtd  -->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置mybatis运行环境:
        defalut:当前mybatis的运行环境
      -->
    <environments default="dev">
        <environment id="dev">
            <!--      使用JDBC的事务管理      -->
            <transactionManager type="JDBC"/>
            <!--      配置数据源:
                   POOLED:使用Mybatis默认提供的数据库连接池
                   -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/gzns"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--   加载Mybatis映射文件     -->
    <mappers>
        <mapper resource="com/wpc/mappers/UserMapper.xml"/>
    </mappers>
</configuration>

​ 5.编写Mybatis的映射文件

​ 一个表对应一个映射文件,封装对该表的sql操作

<?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">
<!-- namespace:配置statement的命名空间,快速定位statement,对statement进行分组
    注意:使用Mybatis接口映射前,namespace名可以自定义,但
    使用Mybatis接口映射后:namespace=接口的全限定名
 -->
<mapper namespace="com.offcn.userstatements">
    <!--  该statement的ID:namespace.id  -->
   
</mapper>

四、Mybatis的执行原理

1.加载Mybatis主配置文件
InputStream in =Resources.getResourceAsStream("SqlMapConfig.xml");
2.主配置文件中:
<!--   加载Mybatis映射文件     -->
<mappers>
    <mapper resource="com/offcn/mappers/UserMapper.xml"/>
</mappers>
在加载主配置文件的同时会自动加载映射文件
3.调用MybatisAPI完成操作:
List<User> list =
        sqlSession.selectList("statementID");
通过statementID找到要执行的SQL,发送给数据库
4.拿到数据库的执行结果,根据resultType/resultMap,把ResultSet自动封装为相应的JavaBean;
5.sql传参数要注意:
5.1如果parameterType="单个基本数据类型/String"#{任意}
5.2如果parameterType="自定义的java类/map"#{对象属性名/map的key} #{属性名}:通过调用相应的getter方法获取其值
注意:
5.2#{必须和对象的属性名一致}

五、通过IDEA创建Mybatis模板工具

在这里插入图片描述

2.创建MybatisUtil模板类:任意工程都可以使用

在这里插入图片描述

3.创建Mybatis测试基类

在这里插入图片描述

4.创建Mybati主配置文件模板
在这里插入图片描述
5.创建Mybatis映射文件模板:

在这里插入图片描述

六、Mybatis接口代理开发DAO

使用Mybatis之前进行DAO层开发都需要编写接口实现类,但Mybatis通过接口代理可以自动为我们生产接口对应的实现类:
使用Mybatis无需再编写Mybatis实现类

1.建立普通Maven工程
2.编写Mybatis主配置文件
3.编写实体类
4.编写接口
5.编写接口映射文件:
编译映射文件时:路径要使用/.在resource文件中只是一个普通字符
该映射文件必须和接口对应:
namespace=接口的全限定名;
statement的ID=接口中的方法名;
parameterType=接口中的方法参数类型;
resultType=接口中的方法返回值类型:
如果返回值为集合,写其泛型类型
6.测试:
   6.1引入MybatisUtil和TestBase模板类,为测试提供简介
   6.2编写具体测试代码
    sqlSession.getMapper(接口的类对象);
		来获取Mybatis为我们自动创建的接口实现类对象

的方法参数类型;
resultType=接口中的方法返回值类型:
如果返回值为集合,写其泛型类型
6.测试:
6.1引入MybatisUtil和TestBase模板类,为测试提供简介
6.2编写具体测试代码
sqlSession.getMapper(接口的类对象);
来获取Mybatis为我们自动创建的接口实现类对象


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值