Mybatis 取值方式

https://blog.csdn.net/weixin_43899452/article/details/123316545

MyBatis获取参数值的两种方式,获取参数值的5种情况

使用方法:
例1:
mapper接口方法的参数为单个的字面量类型

@Test
public void GetUserByUsernameTest(){
SqlSession sqlSession= SqlSessionUtils.getSqlSession();
ParameterMapper mapper=sqlSession.getMapper(ParameterMapper.class);
User user=mapper.getUserByUsername("admin");
System.out.println(user);
}
1
2
3
4
5
6
7
User getUserByUsername(String username);
1
<!-- User GetUserByUsername(String username);-->
<select id="getUserByUsername" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user where username='${username}'
</select>
1
2
3
4
例2:
mapper接口方法的参数为多个时

此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
a>以arg0,arg1…为键,以参数为值
b>以param1,param2…为键,以参数为值
因此只需要通过#{}和dallor{} 以键的方式访问值即可,但是需要注意${}的单引号问题
@Test
public void testCheckLogin(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
ParameterMapper mapper = sqlSession.getMapper(ParameterMapper.class);
User user = mapper.checkLogin("admin", "123456");
System.out.println(user);
}
1
2
3
4
5
6
7
User getUser1(String username,String password);
1
<!-- User getUser1(String username,String password);-->
<select id="getUser1" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user where username=#{arg0} and password=#{arg1}
</select>
1
2
3
4
例3:
若mapper接口方法的参数有多个时,可以手动将这些参数放在一个map中存储

只需要通过#{}和dallor{} 以键的方式访问值即可,但是需要注意${}的单引号问题
手动将数据放在map中
@Test
public void testcheckLoginByMap(){
SqlSession sqlSession= SqlSessionUtils.getSqlSession();
ParameterMapper mapper=sqlSession.getMapper(ParameterMapper.class);
// User user=mapper.getUser1("admin","123456");
Map<String,Object> map=new HashMap<>();
map.put("username","admin");
map.put("password","123456");
User user=mapper.checkLoginByMap(map);
System.out.println(user);
}
1
2
3
4
5
6
7
8
9
10
11
User checkLoginByMap(Map<String,Object> map);
1
<select id="checkLoginByMap" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user where username = #{username} and password = #{password}
</select>
1
2
3
例4:
4、mapper接口方法的参数是实体类类型的参数
* 只需要通过#{}和dallor{}以属性的方式访问属性值即可,但是需要注意${}的单引号问题

@Test
public void testinsertUser(){
SqlSession sqlSession= SqlSessionUtils.getSqlSession();
ParameterMapper mapper=sqlSession.getMapper(ParameterMapper.class);
int result=mapper.insertUser(new User(null,"admin","123456",23,"男","12345@qq.com"));
System.out.println(result);
}
1
2
3
4
5
6
7
int insertUser(User user);
1
<!-- int insertUser(User user);-->
<insert id="insertUser">
insert into t_user values (null ,#{username},#{password},#{age},#{sex},#{email})
</insert>
1
2
3
4
例5:
使用@Param注解命名参数
* 此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
* a>以@Param注解的值为键,以参数为值
* b>以param1,param2…为键,以参数为值
* 因此只需要通过#{}和dallor{}以键的方式访问值即可,但是需要注意${}的单引号问题

@Test
public void GetTest1(){
SqlSession sqlSession= SqlSessionUtils.getSqlSession();
ParameterMapper mapper=sqlSession.getMapper(ParameterMapper.class);
User user=mapper.checkLoginByParam("admin","123456");
System.out.println(user);
}
1
2
3
4
5
6
7
User checkLoginByParam(@Param("username") String username, @Param("password") String password);
1
<select id="checkLoginByParam" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user where username = #{username} and password = #{password}
</select>
————————————————
版权声明:本文为CSDN博主「太累,耍一天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43899452/article/details/123316545

posted @   嘉合  阅读(46)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示