Maven 整合 MyBatis 实现增删改查:详细代码注释
Maven 整合 MyBatis 实现增删改查:详细代码注释
本文将详细讲解使用 Maven 组件整合 MyBatis 完成数据库增删改查操作,并提供每一行代码的注释说明,帮助你轻松上手 MyBatis。
1. pom.xml (Maven 依赖配置)
<dependencies>
<!-- MyBatis 核心依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MyBatis 与数据库连接池整合 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!-- 数据库驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- 其他依赖... -->
</dependencies>
2. MyBatis 配置文件 (mybatis-config.xml)
<!DOCTYPE configuration>
<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/dbname"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<!-- 映射器配置 -->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
3. UserMapper.xml (映射器配置文件)
<!DOCTYPE mapper>
<mapper namespace="com.example.mapper.UserMapper">
<!-- 查询所有用户 -->
<select id="findAll" resultType="com.example.entity.User">
SELECT * FROM user
</select>
<!-- 根据 ID 查询用户 -->
<select id="findById" resultType="com.example.entity.User" parameterType="int">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 添加用户 -->
<insert id="addUser" parameterType="com.example.entity.User">
INSERT INTO user (username, password, age) VALUES (#{username}, #{password}, #{age})
</insert>
<!-- 更新用户 -->
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET username = #{username}, password = #{password}, age = #{age} WHERE id = #{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
4. UserMapper.java (映射器接口)
package com.example.mapper;
import com.example.entity.User;
import java.util.List;
public interface UserMapper {
List<User> findAll();
User findById(int id);
void addUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
5. User.java (实体类)
package com.example.entity;
public class User {
private int id;
private String username;
private String password;
private int age;
// 省略构造方法、getter 和 setter...
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + "'"
", password='" + password + "'"
", age=" + age +
'}';
}
}
6. 使用 MyBatis 完成增删改查的示例代码
import com.example.entity.User;
import com.example.mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
import java.util.List;
public class MyBatisExample {
public static void main(String[] args) {
// 加载 MyBatis 配置文件
InputStream configStream = MyBatisExample.class.getResourceAsStream("/mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(configStream);
// 创建 SqlSession
try (SqlSession session = sessionFactory.openSession()) {
// 获取 UserMapper 接口的实例
UserMapper mapper = session.getMapper(UserMapper.class);
// 查询所有用户
List<User> userList = mapper.findAll();
for (User user : userList) {
System.out.println(user);
}
// 根据 ID 查询用户
User user = mapper.findById(1);
System.out.println(user);
// 添加用户
User newUser = new User();
newUser.setUsername("test");
newUser.setPassword("123456");
newUser.setAge(18);
mapper.addUser(newUser);
session.commit(); // 提交事务
// 更新用户
User updateUser = new User();
updateUser.setId(1);
updateUser.setUsername("updated");
updateUser.setPassword("654321");
updateUser.setAge(20);
mapper.updateUser(updateUser);
session.commit(); // 提交事务
// 删除用户
mapper.deleteUser(1);
session.commit(); // 提交事务
}
}
}
总结
以上示例使用了 Maven 进行依赖管理,通过 MyBatis 的配置文件指定了数据库连接和映射器配置。在使用 MyBatis 时,可以通过 SqlSession 与数据库交互,通过映射器接口执行 SQL 语句。这是一个简单的 MyBatis 示例,但实际应用中可能会有更复杂的数据库操作和业务逻辑。根据实际需求进行适当修改和扩展。
原文地址: https://www.cveoy.top/t/topic/bGXY 著作权归作者所有。请勿转载和采集!