MyBatis快速上手指南
MyBatis是一个持久化框架,可以帮助Java开发人员快速高效地进行数据库操作。本文将介绍如何快速上手MyBatis并运行程序。
环境准备
- 安装Java环境(JDK),版本需大于等于1.8
- 安装并配置Maven,用于管理项目依赖
- 准备一个MySQL数据库
步骤
1. 创建Maven项目
使用以下命令在本地创建一个Maven项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=mybatis-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
2. 添加依赖
在pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
3. 创建数据表
在MySQL数据库中创建一张名为“user”的数据表:
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`age` int DEFAULT NULL,
PRIMARY KEY (`id`)
);
4. 创建实体类
在项目中创建一个名为“User”的Java实体类,用于表示用户:
public class User {
private Long id;
private String name;
private Integer age;
// getter/setter 省略
}
5. 创建Mapper文件
在resources目录下创建一个名为“UserMapper.xml”的文件,用于存放Mapper(映射器)的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="com.example.UserMapper">
<insert id="insert">
INSERT INTO `user` (`name`, `age`) VALUES (#{name}, #{age})
</insert>
<select id="selectAll" resultType="com.example.User">
SELECT * FROM `user`
</select>
</mapper>
6. 创建Mapper接口
在Java代码中创建一个名为“UserMapper”的接口,用于定义Mapper的方法:
public interface UserMapper {
void insert(User user);
List<User> selectAll();
}
7. 配置MyBatis
在mybatis-config.xml文件中配置MyBatis:
<?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="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/UserMapper.xml"/>
</mappers>
</configuration>
其中,
8. 编写测试代码
在测试代码中编写MyBatis的初始化和Mapper方法的调用:
public class MyBatisTest {
private SqlSessionFactory sessionFactory;
private UserMapper userMapper;
@Before
public void setUp() throws Exception {
String resource = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
reader.close();
SqlSession sqlSession = sessionFactory.openSession();
userMapper = sqlSession.getMapper(UserMapper.class);
}
@Test
public void testInsert() {
User user = new User();
user.setName("test");
user.setAge(18);
userMapper.insert(user);
}
@Test
public void testSelectAll() {
List<User> users = userMapper.selectAll();
for (User user : users) {
System.out.println(user.getName());
}
}
}
9. 运行测试代码
运行测试代码,如果输出了“test”字符串,说明测试成功。
示例
以下是使用MyBatis进行数据库操作的两个示例:
示例1
要求:将数据库中所有用户记录的年龄增加1岁。
public void updateUserAges() {
SqlSession sqlSession = sessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> users = userMapper.selectAll();
for (User user : users) {
user.setAge(user.getAge() + 1);
userMapper.update(user);
}
}
示例2
要求:查询年龄小于18岁的所有用户记录。
public List<User> selectYoungUsers() {
SqlSession sqlSession = sessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
return userMapper.selectYoungUsers();
}
UserMapper.xml文件中的SQL语句:
<select id="selectYoungUsers" resultType="com.example.User">
SELECT * FROM `user` WHERE `age` < 18
</select>
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis快速上手并运行程序 - Python技术站