一、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)
前四步不变,加入一个新的接口
接口规范:
- 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&#