MyBatis整合

Posted 1556553526qq-com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis整合相关的知识,希望对你有一定的参考价值。

1.MyBatis的介绍:

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于
配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录.

2.如何简单的使用MyBatis: 

第一步:创建一个java工程,导入驱动包和MyBatis包

技术图片

 

 

 第二步:创建相应的实体类(bean),操作接口(dao),映射文件(mapper.xml)分别放在相对应的包下

技术图片

 

 

 第三步:创建配置文件和引入日志文件

技术图片

 

 

 第四步:将配置文件中加入配置代码以及将映射文件引入以及优化

<?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="db.properties"></properties> 引入db.propertise进行优化
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<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>
<mapper resource="com/zhiyou/zt/mapper/Usersmapper.xml"/>  <!--【为引入的映射文件】-->
</mappers>
</configuration>

第五步:在映射文件中关联查询

 

 

 

 1:添加配置信息:

<?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">
<mapper namespace="为接口所在地方的名称">
         关联查询
</mapper>

2:映射文件中添加关联查询:当表列名与实体类字段名不相同时,需要在返回类型使用resultMap,然后重新建立一个resultMap标签,进行列名对应,主键用id标签,column属性为表的列名,property属性为对应实体类的字段名,当表的实体类关系为多的那一方时,在实体类中添加一个对应关系为一的那一方的一个对象属性。在resulyMap标签中使用association标签,属性property为实体类的属性名,javaType属性为实体类属性对应的实体类的引用位置,当表实体类关系为一的那一方时,在实体类中添加一个对应关系为多的那一方的一个集合属性,在resultMap中使用collection标签,属性property为实体类的属性名,ofType属性为实体类属性对应的实体类的引用位置。

resultMap
<?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">
<mapper namespace="com.zhiyou.zt.dao.Clazzdao">
    <select id="getClazz" resultMap="Mymap">
        select * from class,teacher,student where class.teacher_id=teacher.t_id and student.class_id=class.c_id and c_id=#id
    </select>
    <resultMap type="com.zhiyou.zt.bean.Clazz" id="Mymap">
        <id column="c_id" property="cid"/>
        <result column="c_name" property="cname"/>
        <result column="teacher_id" property="tid"/>
        <association property="teacher" javaType="com.zhiyou.zt.bean.Teacher">
        <id column="t_id" property="tid"/>
        <result column="t_name" property="tname"/>
        </association>
        <collection property="students" ofType="com.zhiyou.zt.bean.Student">
        <id column="s_id" property="sid"/>
        <result column="s_name" property="sname"/>
        <result column="class_id" property="classid"/>
        </collection>
    </resultMap>
</mapper>

 

以上是关于MyBatis整合的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合mybatis快速入门

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis

mybatis学习笔记(14)-mybatis整合ehcache

MyBatis学习14MyBatis和Spring整合

MyBatis学习14MyBatis和Spring整合

SpringMVC-Mybatis整合和注解开发