先构建好环境
1.创建Maven项目
2.搭建MyBatis环境
3.连接一个MySql的DataBase
4.再检查一遍配置文件有没有写对
mapper中传递多个参数(学过的…)
1.使用@Param注解来指定名称
/**
* 接口中的方法如下
*@param userName用户名
*@param password 密码
*/
List <User> selectUserByUserNameAndPassword(@Param(“userName”)String userName
,@Param(“Password”) String password);
@Param指定了两个参数名字userName 和 Password 在mapper映射文件中映射方法如下
<select id=“selectUserByUserNameAndPassword” resultType=“User”>
SELECT * FROM smbms_user
Where userName = #{userName}
and Password = #{Password}
</select>
2.在映射文件使用#{0},#{1}等占位符
映射文件代码如下
<select id=“selectUserByUserNameAndPassword” resultType=“User”>
SELECT * FROM smbms_user
Where userName = #{0}
and Password = #{1}
</select>
/**
* #{0} 和 #{1} 的值就是调用方法时实参的第一个值和第二个值
*/
3.使用Map集合传入参数
<select id=“selectUserByUserNameAndPassword” resultType=“User”>
SELECT * FROM smbms_user
Where userName = #{name}
and Password = #{password}
</select>
/**
* #{name} 和 #{password} 对应的是集合键(key)的名称
*/
#{}和${}区别
1.使用#{}传值时
/**
* 假设第一个参是 admin
* 第二个参是 pwd123456
*/
<select id=“selectUserByUserNameAndPassword” resultType=“User”>
SELECT * FROM smbms_user
Where userName = #{0}
and Password = #{1}
</select>
上面加粗sql语句就是下面这样
SELECT * FROM smbms_user
Where userName = "admin"
and Password = "pwd123456"
2.使用${}传值时
/**
* 假设第一个参是 admin
* 第二个参是 pwd123456
*/
<select id=“selectUserByUserNameAndPassword” resultType=“User”>
SELECT * FROM smbms_user
Where userName = ${0}
and Password = ${1}
</select>
上面加粗sql语句就是下面这样
SELECT * FROM smbms_user
Where userName = admin
and Password = pwd123456
3.使用#{}传列名
SELECT * FROM smbms_user
Where userName = "admin"
Order By "id"
发现列名有个双引号,这会异常;
列名可以不写符号, 写的话就要用`` ps两个小撇不是单引号
总结:
1.能用#{}传值就尽量用#{}传值
2.传入表或者列时要用${}
本文是学生整理的关于在Idea中使用MyBatis进行MySQL数据库查询的学习笔记,详细介绍了如何构建环境,包括创建Maven项目、搭建MyBatis环境、连接数据库,并讲解了在mapper中传递多个参数的方法,如使用@Param注解、占位符#{0}, #{1}以及Map集合。同时,对比了#{}和${}的区别,强调了在传列名时应使用${},并提醒在使用#{}时会将参数自动加上引号,避免SQL注入问题。"
122381188,9643923,禅道测试模块操作指南:用例执行与Bug转换,"['软件测试', '测试管理', '禅道', '测试用例']
3613

被折叠的 条评论
为什么被折叠?



