mybatis的注解开发
时间: 2023-11-19 07:06:15 浏览: 38
MyBatis 的注解开发提供了一种更加简单和方便的方式来映射 SQL 语句和 Java 对象,不再需要编写 XML 配置文件。MyBatis 的注解开发有以下几个步骤:
1. 配置 MyBatis 的注解支持
在 MyBatis 的配置文件中添加以下配置:
```xml
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<package name="com.example.domain"/>
</typeAliases>
<mappers>
<mapper class="com.example.dao.UserMapper"/>
</mappers>
</configuration>
```
其中,`mapUnderscoreToCamelCase` 表示是否开启驼峰命名规则;`typeAliases` 表示扫描 Java 类的包路径;`mappers` 表示要扫描的 Mapper 接口。
2. 定义 Mapper 接口
```java
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(Long id);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
int insertUser(User user);
@Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")
int updateUser(User user);
@Delete("DELETE FROM user WHERE id=#{id}")
int deleteUser(Long id);
}
```
在 Mapper 接口中使用注解来定义 SQL 语句,比如 `@Select`、`@Insert`、`@Update`、`@Delete` 等。
3. 定义实体类
```java
public class User {
private Long id;
private String name;
private Integer age;
// getter 和 setter
}
```
实体类中的属性名要和数据库中的列名保持一致。
4. 使用 Mapper 接口
```java
public class MyBatisApp {
public static void main(String[] args) {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(MyBatisApp.class.getResourceAsStream("/mybatis-config.xml"));
try (SqlSession session = sessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.getUserById(1L);
System.out.println(user);
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
userMapper.insertUser(newUser);
session.commit();
newUser.setName("Jerry");
userMapper.updateUser(newUser);
session.commit();
userMapper.deleteUser(2L);
session.commit();
}
}
}
```
在代码中使用 `SqlSessionFactory` 创建 `SqlSession`,然后通过 `getMapper` 方法获取 Mapper 接口的实例,即可调用 Mapper 接口中的方法来操作数据库。最后通过 `commit` 方法提交事务。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)