目录
以下是一个简单的 MyBatis 示例,包括了定义了一个实体类 User,以及一个对应的 Mapper 接口 UserMapper 和对应的 XML 映射文件 UserMapper.xml,以及mybatis的XML配置文件和main调用方法
1、实体类 User
package com.example.model;
public class User {
private int id;
private String username;
// Getter 和 Setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
2、Mapper 接口 UserMapper
package com.example.mapper;
import com.example.model.User;
import java.util.List;
public interface UserMapper {
User getUserById(int id);
List<User> getAllUsers();
void insertUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
3、配置 MyBatis XML 文件
mybatis-config.xml
<?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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
4、创建 Mapper XML 映射文件
UserMapper.xml
<?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.mapper.UserMapper.xml">
<resultMap id="userResultMap" type="com.example.model.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
</resultMap>
<select id="getUserById" resultMap="userResultMap">
SELECT * FROM users WHERE id = #{id}
</select>
<select id="getAllUsers" resultMap="userResultMap">
SELECT * FROM users
</select>
<insert id="insertUser">
INSERT INTO users (username) VALUES (#{username})
</insert>
<update id="updateUser">
UPDATE users SET username = #{username} WHERE id = #{id}
</update>
<delete id="deleteUser">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
5、main
import com.example.User;
import com.example.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 Main {
public static void main(String[] args) {
// 加载 MyBatis 配置文件
InputStream inputStream = Main.class.getResourceAsStream("/mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建 SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
// 插入用户
User user = new User(1, "Alice");
userMapper.insertUser(user);
// 查询所有用户
List<User> users = userMapper.getAllUsers();
for (User u : users) {
System.out.println(u);
}
// 更新用户
user.setName("Bob");
userMapper.updateUser(user);
// 查询用户
User userById = userMapper.getUserById(1);
System.out.println(userById);
// 删除用户
userMapper.deleteUser(1);
}
}
}