mybatis全注解开发
时间: 2023-11-09 16:02:19 浏览: 35
MyBatis全注解开发是指使用注解的方式来配置MyBatis的映射关系,相比于XML配置文件,注解配置更加简洁明了,适用于小型项目或者简单的查询操作。在使用注解配置时,需要在Mapper接口上添加@Mapper注解,并在对应的方法上添加@Select、@Insert、@Update、@Delete等注解来指定SQL语句。
例如,查询用户信息的Mapper接口可以这样写:
```
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(int id);
}
```
其中,@Select注解指定了查询语句,#{id}是占位符,表示传入的参数。
相关问题
mybatis纯注解开发
MyBatis纯注解开发是一种使用MyBatis框架进行开发的方式,通过使用注解的方式来实现数据库操作。相对于XML配置文件来说,注解开发更加简洁和直观,可以减少一些繁琐的配置。
下面介绍一些常用的注解:
1. @Select
用于查询操作,可以直接在注解中编写SQL语句。
示例代码:
```
@Select("SELECT * FROM user WHERE id = #{id}")
User findById(int id);
```
2. @Insert
用于插入操作,可以直接在注解中编写SQL语句。
示例代码:
```
@Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})")
void insert(User user);
```
3. @Update
用于更新操作,可以直接在注解中编写SQL语句。
示例代码:
```
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
void update(User user);
```
4. @Delete
用于删除操作,可以直接在注解中编写SQL语句。
示例代码:
```
@Delete("DELETE FROM user WHERE id = #{id}")
void delete(int id);
```
以上是常用的四种注解,使用起来非常方便。在实际开发中,可以根据需求进行注解的组合使用,实现复杂的数据库操作。
mybatis的注解开发
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` 方法提交事务。