本文主要介绍注解开发的简单使用,复杂的 sql 语句还是使用 配置文件
示例
①:配置接口和注解
@Select("select * from user")
List<User> getUsers();
②:核心配置文件中绑定接口
<!-- 绑定接口-->
<mappers>
<mapper class="com.zhouyue.dao.UserMapper"></mapper>
</mappers>
③:测试
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> users = mapper.getUsers();
for (User user :
users) {
System.out.println(user);
}
sqlSession.close();
}
可以查询出数据,但是对于诸如像实体类属性和数据库列名不同等问题就不好解决
官方文档建议:
使用注解实现 CRUD
查:可以使用 @Param 注解来标识一个参数
示例
接口:
@Select("select * from user where id = #{userId}")
User getUser(@Param("userId") int id);
测试:
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUser(1);
System.out.println(user);
sqlSession.close();
}
增:
示例
接口:
@Insert("insert into user(id, name, pwd) values (#{id}, #{name}, #{password})")
int addUser(User user);
测试:
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int num = mapper.addUser(new User(6, "张三", "1548795"));
System.out.println(num);
sqlSession.close();
}
删:
示例
接口:
@Delete("delete from user where id = #{userId}")
int delUser(@Param("userId") int id);
测试:
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.delUser(5);
System.out.println(i);
sqlSession.close();
}
改:
示例
接口:
@Update("update user set name=#{name} where id=#{id}")
int updateUser(User user);
测试:
@Test
public void test(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int num = mapper.updateUser(new User(6, "李四", "145875"));
System.out.println(num);
sqlSession.close();
}