上次说到配置Mybatis,可是,单单是配置Mybatis还是不行的,我们还要用Mybatis来开发。
相信有Mybatis开发经验的人都知道,Mybatis开发时,我们需要编写mapper。
今天我们来看看怎么使用Mybatis。
还记得上次说到,我们的mybatis的mapper是写在me.idashu.attg.persistence这个包下面的,那么,mapper就下载这个下面吧。
下看看我们的接口,我在me.idashu.attg.persistence这个包下面,新建了一个UserMapper接口:
1
2
3
4
5
6
7
8
9
|
public
interface
UserMapper {
void
insertUser(User user);
void
updateUser(User user);
User getUser(User user);
}
|
这只是个接口,但是我们还要有具体的操作内容,所以,要在同一个包的下面,新建一个UserMapper.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<
mapper
namespace
=
"me.idashu.attg.persistence.UserMapper"
>
<
cache
/>
<
insert
id
=
"insertUser"
parameterType
=
"User"
>
INSERT INTO
user
(
username,
password
)
VALUES
(
#{username},
#{password}
)
</
insert
>
<
update
id
=
"updateUser"
parameterType
=
"User"
>
update user set
username = #{username},
password = #{password}
WHERE id = #{id}
</
update
>
<
select
id
=
"getUser"
parameterType
=
"User"
resultType
=
"User"
>
select * from user where id=#{id}
</
select
>
</
mapper
>
|
这个xml文件,就是上面的那个接口的实现。这样子就可以把我们的mapper写好。
然后我们看看service层。mapper操作数据层,而我们的事务,是service层。下面是service的截图:
在service层的类中,用@Service来说明这个类是一个实体类,方便注入,然后
1
2
|
@Autowired
private
UserMapper userMapper;
|
就是为了注入刚才上面所写的mybatis的mapper。在下面,我们就可以直接使用接口定义的方法了。
那么@Transactional(rollbackFor=Exception.class)这段代码的作用呢,就是定义了一个事物,这个事务是在update方法里面,如果这个方法抛出异常,那么就会rollback。
如果要在controller层使用我们的service,直接注入就行了。好了,mybatis的配置也说完了。