java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入

本文详细介绍了如何在MyBatis中进行直接执行SQL查询和数据批量插入。对于直接执行查询,重点强调了SQL语句的规范以及#{}与${}的区别。在批量插入部分,讨论了提高效率的方法,并展示了MyBatis中插入数据的用法,包括处理主键自增和获取插入时间等问题。
摘要由CSDN通过智能技术生成

一、直接执行SQL查询:

1、mappers文件节选

${paramSQL}

2、DAO类节选

public interface SomeDAO{

List getInstanceModel(@Param("paramSQL")String sql);

}

3、注意事项

3.1:传入方法的参数sql必须遵循以下规范"select XXX as instanceid, XXX as instancename ....." ,否则MyBatis无法自动将查询结果变成Java对象。

3.2: mappers文件中的#{}语法与${}语法的区别:

默认情况下, #{}语法会促使MyBatis生成PreparedStatement属性并且使用PreparedStatement的参数(=?)来设置值。如果你想直接将未更改的字符串代入到sql中,可以使用${}。

也就是说,MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(比如MyBatis会判断它的类型,并自动在前后加单引号)。而当MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理。

所以在使用${}的时候,不需要像#{}一样写"jdbcType=VARCHAR"之类的属性。

3.3:resultType和resultMap

按照1中的写法, < resultMap > 部分可以删除不用了,因为在接下来的中没用使用定义的resultMap,而是使用了resultType。

所以我们可以看出,关于返回值的定义有两种写法,一种是定义一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值