mybatis用什么方式查数据
时间: 2024-03-19 22:43:24 浏览: 15
MyBatis是一款优秀的ORM框架,支持多种方式查询数据,包括:
1. 基于注解的查询方式:可以在Mapper接口中使用@Select等注解来定义SQL语句,然后通过调用Mapper接口方法来执行SQL语句并返回结果。
示例代码:
```java
@Select("SELECT * FROM user WHERE id = #{userId}")
User getUserById(@Param("userId") Long userId);
```
2. 基于XML的查询方式:可以将SQL语句写在XML文件中,然后通过调用Mapper接口方法来执行SQL语句并返回结果。
示例代码:
```xml
<!-- userMapper.xml -->
<select id="getUserById" parameterType="java.lang.Long" resultType="com.example.User">
SELECT * FROM user WHERE id = #{id}
</select>
```
```java
// UserMapper.java
User getUserById(Long id);
```
3. 动态SQL查询方式:MyBatis支持通过if、choose、when、otherwise等标签来动态生成SQL语句,根据不同的查询条件生成不同的SQL语句。
示例代码:
```xml
<!-- userMapper.xml -->
<select id="getUserByName" parameterType="java.lang.String" resultType="com.example.User">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
```
```java
// UserMapper.java
User getUserByName(@Param("name") String name, @Param("age") Integer age);
```
4. 分页查询:MyBatis支持通过RowBounds或PageHelper等方式来实现分页查询。
示例代码:
```java
// 使用RowBounds方式实现分页查询
List<User> getUsers(int offset, int limit);
// 使用PageHelper方式实现分页查询
PageHelper.startPage(pageNum, pageSize);
List<User> getUsers();
```
总的来说,MyBatis提供了多种灵活的查询方式,可以根据具体的业务需求选择不同的查询方式。