让我来给您详细讲解“MyBatis入门介绍(超简单)”的完整攻略。
1. 什么是MyBatis
MyBatis是一款优秀的持久层框架,它主要解决了传统的JDBC编程中,大量重复的sql语句以及防止sql注入等问题,在实际的开发过程中可以大大提高开发效率。
2. MyBatis的优势和特点
- 简单易学:MyBatis是一个简单易学且功能强大的持久层框架,用户只需要编写sql语句和映射文件即可使用。
- 灵活性高:MyBatis支持任何类型的SQL语句执行方式,能够很好地适应现有的各种复杂Sql需求
- 映射灵活:MyBatis支持自定义SQL映射,用户可以通过自定义映射文件,实现自己的特殊需求
- 提供缓存支持:MyBatis提供了一级缓存和二级缓存支持,大大提高了查询性能。
3. MyBatis的使用流程
- 定义Sql映射文件:sql映射文件中定义了一个或多个sql语句及其与java对象之间的映射关系。
- 创建SqlSessionFactory:SqlSessionFactory用于创建SqlSession对象,它是线程安全的,一个应用只需要一个即可。
- 创建SqlSession:SqlSession用于执行CRUD操作,每个操作都需要一个新的SqlSession,同时它并不是线程安全的,需求在使用时候打开,用完需要关闭。
- 调用SqlSession的方法:调用SqlSession的方法完成CRUD操作。
- 关闭SqlSession:用完SqlSession后需要关闭它,释放它所占用的资源。
4. MyBatis的示例
4.1 定义Sql映射文件
定义一个简单的Sql映射文件UserMapper.xml,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">
<mapper namespace="org.example.mapper.UserMapper">
<select id="getUserById" resultType="org.example.model.User">
select * from user where id = #{id}
</select>
<insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="org.example.model.User">
insert into user (id,name,age) values (#{id},#{name},#{age})
</insert>
</mapper>
4.2 创建SqlSessionFactory
创建SqlSessionFactory的类如下:
public class MybatisUtil {
private static SqlSessionFactory sessionFactory;
static{
try {
String resource = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
sessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSessionFactory() {
return sessionFactory;
}
}
4.3 创建SqlSession
创建SqlSession的代码如下:
SqlSession session = MybatisUtil.getSessionFactory().openSession();
4.4 调用SqlSession的方法
调用SqlSession的方法完成CRUD操作,例如获取用户信息:
User user=session.selectOne("org.example.mapper.UserMapper.getUserById",1);
4.5 关闭SqlSession
用完SqlSession后需要关闭它,释放它所占用的资源,关闭代码如下:
session.close();
另一个示例是插入用户信息的操作,如下:
User user = new User();
user.setName("Tom");
user.setAge(20);
SqlSession session=MybatisUtil.getSessionFactory().openSession();
try {
session.insert("org.example.mapper.UserMapper.addUser",user);
session.commit();
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
session.close();
}
以上就是MyBatis入门介绍的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis入门介绍(超简单) - Python技术站