MyBatis的使用

本文详细介绍了MyBatis的使用,从基础配置到高级特性,包括:配置数据库信息和映射文件、类型处理器、调用存储过程、动态SQL语句、关联查询、日志配置、延迟加载和查询缓存等。还探讨了MyBatis如何进行类型转换、自定义类型处理器以及在实际应用中的最佳实践。
摘要由CSDN通过智能技术生成

一、MyBatis

1.导jar包

  mybatis-3.5.4.jar 

 mysql-connector-java-5.1.47.jar

2.配置mybatis

conf.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>
<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>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>

注意事项:

<typeAliases>
	<!--单个别名(忽略大小写)-->
    <typeAlias type="com.xiaoming.entity.Student" alias="student"></typeAlias>
<!--批量定义别名(忽略大小写) 在entity包里的所有类用自己的类名 -->
    <package name="com.xiaoming.entity"/>
</typeAliases>

3.表 - 类
4.映射文件
xxMapper.xml : 增删改查标签

<?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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>

5.测试类Test:
session.seleceOne(“需要查询的SQL的namespace.id”,“SQL的参数值”);
a.需要获取conf.xml配置文件

//conf.xml ->reader
Reader reader = Resources.getResourceAsReader("conf.xml");
//reader -> sqlsession
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();
String statement = "namespace.id";
Studentinfo studentinfo = session.selectOne(statement,SQL的参数值);
(session.commit;)//需要修改数据库的则要这条 增删改需要
session.close;

约定优于配置

二、进阶版(省掉statement)

前四步不变,加入一个新的接口
接口规范:

  1. namespace = 接口的全名
    2.方法名 = 所要调用的id名
    3.返回类型,参数都需要一样

测试类Test:

Reader reader = Resources.getResourceAsReader("conf.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();

StudentMapper studentMapper = session.getMapper(StudentMapper.class);
studentMapper.需要调用的方法();

session.close();

三、类型处理器(类型转换器)

1.MyBatis自带一些常见的类型处理器
int - number
2.自定义MyBatis类型处理器
java - 数据库(jdbc类型)
实例:
实体类Stu’dent : boolean stuSex true: 男
false:女
表student: number stuSex 1:男
0:女
自定义类型转换器(boolean - number)步骤:

a.创建转换器:需要实现TypeHandler接口
i.实现TypeHandler接口
ii.继承BaseTypeHandler
set: java —>数据库 get: db—>java
b.配置conf.xml:

<typeHandlers>
        <typeHandler handler="com.xiaoming.converter.BooleanAndIntConverter" jdbcType="BOOLEAN" javaType="INTEGER"/>
    </typeHandlers>

c.StudentMapper.xml
使用了类型转换器
i.表中属性和类中字段能自动匹配(String+varchar int+number&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值