MyBatis实操:实现User表增记查询功能及主函数测试
好的,下面是利用MyBatis完成上述功能的示例代码。 1. 编写 `UsersMapper.java` 接口文件 首先,我们需要定义一个 `UsersMapper` 接口,用于声明数据库操作的方法。 ```java package com.example.mapper; import com.example.model.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface UsersMapper { @Insert("INSERT INTO user (name, email) VALUES (#{name}, #{email})") void addUser(User user); @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(int id); } ``` 2. 编写 `usersmapper.xml` 接口映射文件 接下来,我们创建一个 MyBatis 的 XML 映射文件 `usersmapper.xml`,其中包含 SQL 语句。 ```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.UsersMapper"> <insert id="addUser" parameterType="com.example.model.User"> INSERT INTO user (name, email) VALUES (#{name}, #{email}) </insert> <select id="getUserById" parameterType="int" resultType="com.example.model.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 3. 实现 `user` 表添加一条记录方法 在 `UsersMapper` 接口中已经定义了 `addUser` 方法,该方法会将用户信息插入到 `user` 表中。 4. 实现主键查询 `user` 表方法 同样地,在 `UsersMapper` 接口中已经定义了 `getUserById` 方法,该方法会根据主键 ID 查询 `user` 表中的记录。 5. 主函数中测试 我们在主函数中进行测试。假设你已经配置好了 MyBatis 和数据库连接,以下是一个简单的测试示例: ```java package com.example; import com.example.mapper.UsersMapper; import com.example.model.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.Reader; public class Main { public static void main(String[] args) throws IOException { // 读取 MyBatis 配置文件 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 获取 SqlSession try (SqlSession session = sqlSessionFactory.openSession()) { UsersMapper usersMapper = session.getMapper(UsersMapper.class); // 添加用户记录 User newUser = new User(); newUser.setName("John Doe"); newUser.setEmail("johndoe@example.com"); usersMapper.addUser(newUser); session.commit(); // 提交事务 // 根据主键查询用户记录 User user = usersMapper.getUserById(newUser.getId()); System.out.println("User: " + user); } } } ``` 6. `User` 模型类 别忘了创建 `User` 模型类: ```java package com.example.model; public class User { private int id; private String name; private String email; // Getters and Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", email='" + email + '\'' + '}'; } } ``` 7. MyBatis 配置文件 `mybatis-config.xml` 确保你有一个 MyBatis 配置文件来配置数据库连接等信息: ```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.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/yourdatabase"/> <property name="username" value="yourusername"/> <property name="password" value="yourpassword"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/usersmapper.xml"/> </mappers> </configuration> ``` 以上代码展示了如何使用 MyBatis 完成添加用户记录和根据主键查询用户记录的功能,并在主函数中进行了测试。请根据你的实际需求调整数据库连接信息和其他配置。 ######[AI写代码神器 | 1480点数解答 | 2024-11-18 08:05:46]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)366
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)382
- 补全含错误代码:Vue结合Element UI组件实现查询、新增及表格展示功能 ( | 400点数解答 | 2023-12-19 15:20:50)454
- 单线程频繁查ClickHouse致CPU飙升?这些优化方案速看!(DeepSeek | 491点数解答 | 2025-02-13 17:49:54)251
- MySQL:巧用 NOT LIKE 查询字段不包含特定字符串及注意要点 (DeepSeek | 264点数解答 | 2025-02-13 18:25:01)196
- HTTP 插件执行遇 404 错误,三招教你排查解决! (字节豆包 | 111点数解答 | 2025-04-06 20:49:20)237
- Linux 终端操作全攻略:用户创建、文件处理、权限设置与日志查找(字节豆包 | 592点数解答 | 2025-06-12 21:19:29)192
- 融合道德感机制:女性NPC规则全面升级(字节豆包 | 1489点数解答 | 2025-06-20 20:06:34)173
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)354
- 巧用 MyBatis Plus 自定义拦截器实现数据权限控制(讯飞星火 | 567点数解答 | 2024-05-29 22:59:21)269
- MyBatis-Plus:用Wrapper构造器实现user与order联表查询代码示例 (字节豆包 | 277点数解答 | 2024-10-17 10:02:49)208