MyBatis的基本使用
映射配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBitis的DTD约束,定义xml标签约束,使开发者按照定义书写-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper:核心的根标签
namespace:名称空间
-->
<mapper namespace="BookMapper">
<!--
select:查询功能的标签
id属性:唯一的标识
resultType属性:指定结果的映射对象的类型
parameterType属性:指定参数映射对象类型
-->
<select id="selectAll" resultType="book">
SELECT * FROM book
</select>
<select id="selectById" resultType="book" parameterType="int">
SELECT * FROM book WHERE book_id = #{id}
</select>
<insert id="insert" parameterType="book">
INSERT INTO book VALUES (#{book_id}, #{book_name}, #{book_author}, #{book_publisher})
</insert>
<update id="update" parameterType="book">
UPDATE book SET book_name=#{book_name}, book_author=#{book_author} WHERE book_id=#{book_id}
</update>
<delete id="delete" parameterType="int">
DELETE FROM book WHERE book_id=#{book_id}
</delete>
</mapper>
-
定义xml标签约束,使开发者按照定义书写
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -
mapper:核心根标签
- namespace:命名空间
-
select:查询数据功能标签,
- id属性:唯一标识
- resultType属性:指定结果映射对象的类型
- parameterType属性:指定参数映射对象的类型
-
insert:新增数据功能标签
- id属性:唯一标识
- parameterType属性:指定参数映射对象的类型
-
update:更新数据功能标签
- id属性:唯一标识
- parameterType属性:指定参数映射对象的类型
-
delete:删除数据功能标签
- id属性:唯一标识
- parameterType属性:指定参数映射对象的类型
数据库连接配置文件引入
-
<properties>:引入数据库连接配置文件标签 -
resource属性:数据库配置文件路径 -
获取数据库连接参数
${键名} -
代码示例
<properties resource="jdbc.properties" />
核心配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBitis的DTD约束,定义xml标签约束,使开发者按照定义书写-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 根标签-->
<configuration>
<!--引入数据库配置文件-->
<properties resource="jdbc.properties" />
<!--起别名-->
<typeAliases>
<typeAlias type="com.cmy.bean.Book" alias="book" />
</typeAliases>
<!--environments配置数据库环境,环境可以有很多个,而default属性则是指定某个环境-->
<environments default="mysql1">
<!-- environment数据库环境,id属性:唯一标识 -->
<environment id="mysql1">
<!--transactionManager事务管理,type 采用JDBC默认的事务管理-->
<transactionManager type="JDBC" />
<!--dataSource数据库源信息 type属性 连接池-->
<dataSource type="POOLED">
<!--property 获取数据库连接的配置信息-->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!--mappers引入映射配置文件-->
<mappers>
<!--mapper 引入指定的配置文件,resource:指定映射配置文件名称-->
<mapper resource="BookMapper.xml" />
</mappers>
</configuration>
-
定义xml标签约束,使开发者按照定义书写
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> -
configuration:根标签
-
typeAliases:为全类名起别名的父标签
- typeAlias:为全类名起别名的子标签
- type属性:指定全类名
- alias属性:指定别名
- package:为指定包下所有类起别名的子标签(别名就是类名)
<package name="com.cmy.bean" />
- 此标签需写在核心配置文件里,在映射配置文件里就可以使用自定义的别名
- typeAlias:为全类名起别名的子标签
-
environments:配置数据库环境标签
- default属性:指定某个数据库环境
-
environment:数据库环境标签,可以定义多个
- id属性:唯一标识
-
transactionManager:事务管理标签
- type属性:指定事务管理类型
-
dataSource:数据库源信息标签
- type属性:指定连接池
-
property:获取数据库连接的配置信息标签
- name属性:配置参数的名称
- value属性:配置参数的值
-
mappers:引入映射配置文件标签
-
mapper:引入指定的配置文件
- resource属性:指定映射配置文件名称
相关API
Resource
-
org.apache.ibatis.io.Resource:加载资源的工具类 -
核心方法
方法名 返回值 说明 getResourceAsStream(String fileName) InputStream 通过类加载器返回指定资源的字节输入流 -
代码示例
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactoryBuilder
-
org.apache.ibatis.session.SqlsessionFactoryBuilder:获取 SqlSessionFactory工厂对象的功能类 -
核心方法
方法名 返回值 说明 build(InputStream is) SqlSessionFactory 通过指定资源字节输入流获取SqlSession工厂对象
SqlSessionFactory
-
org.apache.ibatis.session.SqlSessionFactory:获取SqlSession构建者对象的工厂接口 -
核心方法
方法名 返回值 说明 SqlSession openSession() 获取SqlSession构建者对象,需手动开启提交事务 SqlSession openSession(boolean autoCommit) 获取SqlSession构建者对象,如果参数为true,则开启自动开启提交事务 -
代码示例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession
-
org.apache.ibatis.session.SqlSession:构建者对象接口,用于执行SQL语句、管理事务、和接口的代理 -
核心方法
方法名 返回值 说明 List selectList(String statement, Object paramter) 执行查询语句,返回List集合 T selectOne(String statement, Object paramter) 执行查询语句,返回一个结果对象 int insert(String statement, Object paramter) 执行插入语句,返回影响行数 int update(String statement, Object paramter) 执行更新语句,返回影响行数 int delete(String statement, Object paramter) 执行删除语句,返回影响行数 void commit() 提交事务 void rollback() 回滚事务 T getMapper(Class cls) 获取指定接口的代理实现类对象 void close() 释放资源 -
代码示例
// 默认关闭自动提交事务 SqlSession sqlSession = sqlSessionFactory.openSession(); // 开启自动提交事务,可用于增删改操作 SqlSession sqlSession = sqlSessionFactory.openSession(true); // 执行映射配置文件中的sql语句,并接收结果 // 查询所有 List<Book> books = sqlSession.selectList("BookMapper.selectAll"); // 指定id查询 Book book = sqlSession.selectOne("BookMapper.selectById", 2); // 插入 Book book = new Book(4, "测试书籍", "无名氏","无出版社"); int result = sqlSession.insert("BookMapper.insert", book); // 更新 Book book = new Book(4, "改了名的书籍", "依然无名氏","无出版社"); int result = sqlSession.insert("BookMapper.update", book); // 删除 int result = sqlSession.delete("BookMapper.delete",4); // 释放资源 sqlSession.close(); is.close();
本文介绍了MyBatis的基础映射配置,包括<Mapper>元素的使用,数据库连接配置的引入,以及SqlSessionFactoryBuilder和SqlSessionFactory的创建。还涵盖了关键API如Resource,用于加载配置文件,和SqlSession的CRUD操作示例。
141

被折叠的 条评论
为什么被折叠?



