MyBatis简介
MyBatis是一个优秀的持久层框架,它消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
MyBatis入门教程
1. 环境搭建
首先,你需要安装Java开发环境,配置好Maven仓库。接着,你可以通过Maven引入MyBatis依赖:
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
2. MyBatis配置
创建一个MyBatis的配置文件mybatis-config.xml,在这个文件中配置数据库连接信息、事务管理以及映射文件的路径。
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
3. 创建映射文件
在MyBatis中,映射文件用来定义SQL语句和实体类的映射关系。下面是一个简单的例子:
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
4. 编写接口
创建一个Mapper接口,定义要执行的方法:
public interface BlogMapper {
Blog selectBlog(int id);
}
5. 测试MyBatis
在主方法中,加载配置文件,创建SqlSessionFactory,然后创建SqlSession来执行查询。
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
Blog blog = (Blog) session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
System.out.println("Blog: " + blog);
} finally {
session.close();
}
MyBatis实战案例分析
1. 实战案例:图书管理系统
1.1 系统需求分析
图书管理系统需要实现图书的增删改查功能。
1.2 数据库设计
设计图书表(book):
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| title | varchar | 标题 |
| author | varchar | 作者 |
| price | decimal | 价格 |
1.3 实体类设计
public class Book {
private int id;
private String title;
private String author;
private BigDecimal price;
// getter和setter方法
}
1.4 Mapper接口设计
public interface BookMapper {
Book selectBook(int id);
int insertBook(Book book);
int updateBook(Book book);
int deleteBook(int id);
}
1.5 MyBatis配置和映射文件
在mybatis-config.xml中配置数据库连接和Mapper接口路径。在BookMapper.xml中定义SQL语句。
<mapper namespace="com.example.mapper.BookMapper">
<select id="selectBook" resultType="com.example.entity.Book">
select * from book where id = #{id}
</select>
<insert id="insertBook">
insert into book (title, author, price) values (#{title}, #{author}, #{price})
</insert>
<update id="updateBook">
update book set title = #{title}, author = #{author}, price = #{price} where id = #{id}
</update>
<delete id="deleteBook">
delete from book where id = #{id}
</delete>
</mapper>
1.6 测试
使用JUnit测试用例进行测试。
@Test
public void testSelectBook() {
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
Book book = mapper.selectBook(1);
assertEquals("Effective Java", book.getTitle());
}
总结
通过本教程,你学会了MyBatis的基本用法和实战案例。MyBatis是一个非常实用的持久层框架,能够帮助你简化数据库操作。希望这篇教程对你有所帮助,让你在MyBatis的世界里更加得心应手。
