Mybatis-work1.zip
Mybatis 是一个流行的Java持久层框架,用于简化数据库操作,它允许开发者将SQL查询与Java代码相结合,提供了灵活且强大的映射机制。基于Mybatis进行增查删改(CRUD)是开发过程中常见的任务,下面将详细介绍Mybatis如何实现这些功能。 `pom.xml` 文件是Maven项目的配置文件,其中包含了项目依赖。对于Mybatis,你需要在`pom.xml`中添加Mybatis库和其依赖的数据库驱动。例如,如果你使用的是MySQL,你需要添加如下依赖: ```xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> </dependencies> ``` 接下来,`src` 目录下通常会包含 `main/java` 和 `main/resources` 两个子目录。`main/java` 存放Java源代码,而`main/resources` 存放配置文件和资源。 1. **Mapper接口**:在 `main/java` 下,创建一个包,例如 `com.example.mapper`,并定义一个Mapper接口,比如 `UserMapper`,它包含了对用户表的CRUD方法。例如: ```java public interface UserMapper { void insertUser(User user); User getUserById(int id); void updateUser(User user); void deleteUser(int id); } ``` 2. **Mapper XML文件**:在 `main/resources` 下创建 `com/example/mapper` 目录,并添加 `UserMapper.xml` 文件,这里编写SQL语句。例如: ```xml <mapper namespace="com.example.mapper.UserMapper"> <insert id="insertUser" parameterType="com.example.model.User"> INSERT INTO users(name, email) VALUES(#{name}, #{email}) </insert> <select id="getUserById" resultType="com.example.model.User"> SELECT * FROM users WHERE id = #{id} </select> <update id="updateUser" parameterType="com.example.model.User"> UPDATE users SET name=#{name}, email=#{email} WHERE id=#{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id=#{id} </delete> </mapper> ``` 确保XML文件中的`namespace`与Mapper接口的全限定类名相同。 3. **SqlSessionFactory和SqlSession**:在 `main/resources` 下创建 `mybatis-config.xml` 配置文件,配置数据源、事务管理器等信息。然后在Java代码中,通过`SqlSessionFactoryBuilder` 创建 `SqlSessionFactory`,再用 `SqlSessionFactory` 创建 `SqlSession` 对象。 4. **Service层**:在业务逻辑层,创建 `UserService` 类,通过 `SqlSession` 调用Mapper接口的方法执行CRUD操作。例如: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public void addUser(User user) { userMapper.insertUser(user); } public User getUser(int id) { return userMapper.getUserById(id); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(int id) { userMapper.deleteUser(id); } } ``` 5. **Controller层**:在 `web` 目录下的控制器类,如 `UserController`,处理HTTP请求,并调用Service层的方法。例如: ```java @Controller @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @PostMapping("/add") public String addUser(@RequestBody User user) { userService.addUser(user); return "success"; } @GetMapping("/{id}") public User getUser(@PathVariable int id) { return userService.getUser(id); } // 更新和删除操作类似... } ``` 至此,你已经构建了一个基本的Mybatis应用,能够处理用户的增查删改操作。在实际项目中,可能还需要考虑事务管理、异常处理、分页查询、动态SQL等更复杂的功能。Mybatis提供了丰富的API和插件支持,可以灵活地扩展和定制以适应各种需求。
- 1
- 粉丝: 24
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助