使用注解可以代替通过xml文件映射, 在接口中使用注解引用sql语句, 然后核心配置文件中, 将该类放入映射器.
CRUD
查询
定义接口, 写入sql语句
1
2
3
4
5
6
7
8
9
10public interface UserMapper {
"select * from user") (
List<User> getUsers();
// 方法存在多个参数, 所有的参数前面必须加上@Param(" ")注解
"select * from user where id = #{id}") (
User getUserByID(@Param("id") int id);
}在核心配置文件中将该类加入映射器
1
2
3<mappers>
<mapper class="com.lxb.dao.UserMapper"/>
</mappers>测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void getUsersTest(){
SqlSession sqlSession = MybtisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> users = mapper.getUsers();
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
public void getUserByIDTest(){
SqlSession sqlSession = MybtisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserByID(2);
System.out.println(user);
sqlSession.close();
}能够正常输出
插入
"insert into user(id, name, pwd) values (#{id}, #{name}, #{pwd})") int addUser(User user); <!--3--> 注意这里没有手动提交事物是因为在`openSession()`的方法中传入了`true` 来自动提交事物
(
修改
"update user set name = #{name}, pwd=#{pwd} where id=#{id}") int updateUser(User user); <!--4-->
(
删除
"delete from user where id=#{id}") int deleteUser(@Param("id") int id); <!--5-->
(
关于@Param()注解
- 基本类型的参数或者String类型, 需要加上
- 引用类型不需要加
- 如果只有一个基本类型的话, 可以忽略, 但是建议加上
- 我们在SQL中引用的就是这里设定的属性名