mybatis初试四之参数传递

Mybatis的参数传递:从java代码中将数据传入到mapper文件的SQL语句

  • parameterType:表示接口中方法参数的数据类型(parameterType=java.lang.Integer)
  • parameterType的值是java数据类型的全限定名或者是Mybatis定义的别名
  • parameterType不是强制的,Mybatis通过反射机制能够发现接口参数的数据类型,可不写
  • 在mapper文件中获取简单类型(基本数据类型和String)的一个参数值,使用#{任意字符}
  • 多个参数,使用@Param命名参数,value属性值对应xml文件中“#{}”的值,如下
public List<User> selectUser(@Param(myName) String name, @Param(myAge) Integer age);
    <select id="selectUser" resultType="user">
        select name, age from user where name = #{myName} or agre = #{myAge};
    </select>
  • 多个参数,使用java对象作为接口方法参数 
List<User> selectUsers(User user);
  1. 使用语法:#{属性名, javaType=类型名称, jdbcType=数据类型}
  2. javaType:java中的数据类型
  3. jdbcType:在数据库中的数据类型
  4. 例如:#{paramName, javaType=java.lang.String, jdbcType=VARCHAR}可简写为#{属性名}
<select id="selectUsers" resultType="user">
        select name, age from user where name = #{name} or agre = #{age};
    </select>
  • 多个参数,使用Map传值(不推荐)

dao接口

List<User> selectUsersByMap(Map<String, Object> map);

 mapper

<select id="selectUsersByMap" result="user">
    <!--#{}中的值为map的key-->
    select * from example where name = #{name} or age = #{age}
</select>

测试

    @Test
    public void testMap() {
        SqlSession sqlsession = MybatisUtil.getSqlsession();
        UserDao userDao = sqlsession.getMapper(USerDao.class);
        Map<String, Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("age", 23);
        List<User> userList = userDao.selectUsersByMap(map);
        userList.forEach(user-> System.out.println(user));
    }

注:#(占位符)和$(字符串替换)的差别

  1. #使用PreparedStatement(避免SQL注入,效率高)执行SQL,$使用Statement执行SQL(不安全,效率低)
  2. $起拼接作用可替换表名或列名

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
疫情居家办公系统管理系统按照操作主体分为管理员和用户。管理员的功能包括办公设备管理、部门信息管理、字典管理、公告信息管理、请假信息管理、签到信息管理、留言管理、外出报备管理、薪资管理、用户管理、公司资料管理、管理员管理。用户的功能等。该系统采用了MySQL数据库,Java语言,Spring Boot框架等技术进行编程实现。 疫情居家办公系统管理系统可以提高疫情居家办公系统信息管理问题的解决效率,优化疫情居家办公系统信息处理流程,保证疫情居家办公系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理疫情居家办公系统信息,包括外出报备管理,培训管理,签到管理,薪资管理等,可以管理公告。 外出报备管理界面,管理员在外出报备管理界面中可以对界面中显示,可以对外出报备信息的外出报备状态进行查看,可以添加新的外出报备信息等。签到管理界面,管理员在签到管理界面中查看签到种类信息,签到描述信息,新增签到信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值