mybatis @param
时间: 2023-11-26 15:02:56 浏览: 104
MyBatis是一款优秀的持久层框架,它对JDBC的操作数据库的过程进行了封装,使得开发者只需要关注SQL语句本身,而不需要花费精力去处理例如注册驱动、创建连接、创建Statement、手动设置参数、结果集检索等JDBC繁杂的过程代码。在MyBatis中,@Param注解用于给SQL语句中的参数命名,可以在SQL语句中直接引用该参数名,而不是使用默认的参数名。使用@Param注解可以避免因为参数名不同而导致的错误,同时也可以使得SQL语句更加清晰易懂。
举个例子,假设我们有一个查询用户信息的方法:
```
public User getUserById(int id, String name);
```
如果我们使用MyBatis进行SQL映射,可以这样写:
```
<select id="getUserById" resultType="User">
select * from user where id = #{id} and name = #{name}
</select>
```
其中#{id}和#{name}就是使用@Param注解指定的参数名。在Java代码中,我们需要这样调用该方法:
```
User user = getUserById(1, "Tom");
```
这里的参数名与SQL语句中的参数名是一致的,因此MyBatis可以正确地将参数传递给SQL语句执行。如果我们不使用@Param注解,则需要这样写:
```
<select id="getUserById" resultType="User">
select * from user where id = #{arg0} and name = #{arg1}
</select>
```
这里的#{arg0}和#{arg1}是MyBatis默认的参数名,与Java代码中的参数名不一致,因此需要手动设置参数:
```
User user = getUserById(1, "Tom");
```
使用@Param注解可以避免这种手动设置参数的过程,使得代码更加简洁易懂。
阅读全文