转:http://www.cnblogs.com/mabaishui/archive/2012/06/20/2556500.html

一、直接执行SQL查询:

1、mappers文件节选

<resultMap id="AcModelResultMap" type="com.izumi.InstanceModel">
  <result column="instanceid" property="instanceID" jdbcType="VARCHAR" />
  <result column="instancename" property="instanceName" jdbcType="VARCHAR" />
</resultMap>

<select id="getInstanceModel" resultType="com.izumi.InstanceModel">
  ${paramSQL}

</select>

2、DAO类节选

public interface SomeDAO{
  List<InstanceModel> 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 > 部分可以删除不用了,因为在接下来的<select >中没用使用定义的resultMap,而是使用了resultType。

所以我们可以看出,关于<select >返回值的定义有两种写法,一种是定义一个resultMap然后引用这个resultMap,还有一种就是直接使用resultType指定一个类的路径。

二、批量插入数据

1、经验告诉我们,使用insert into XXX values(XX)(XXX)(XXX),比使用insert into XXX values(XX),insert into XXX values(XXX),insert into XXX values(XXX)效率要高。

2、在MyBatis中的用法

2.1、mappers文件节选

< insert id ="insertBatch"   >
insert into student ( < include refid ="Base_Column_List"   /> )
values
< foreach collection ="list" item ="item" index ="index" separator ="," >
(null,#{item.name},#{item.sex},#{item.address},#{item.telephone},#{item.tId})
</ foreach >

</insert>

2.2、DAO类节选

public interface SomeDAO{

public void insertBatch(@Param("list")List<Student> students);

}

MyBatis直接执行SQL查询及批量插入数据相关推荐

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

    一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...

  2. SQL Server 2008 批量插入数据时报错

    前几天在SQL Server 2008同步产品数据时,总是提示二进制文本被截断的错误,但是经过检查发现数据都符合格式要求. 百思不得其解,单独插入一条条数据则可以插入,但是批量导入则报错. 批量导入代 ...

  3. Mybatis——注入执行sql查询、更新、新增以及建表语句

    文章目录 前言 案例 dao和mapper编写 XXXmapper.xml编写 编写业务层代码,进行注入调用 额外扩展--创建表语句 前言 在平时的项目开发中,mybatis应用非常广泛,但一般都是直 ...

  4. 查询并批量插入数据的Sql命令

    数据库原始数据: 执行命令: insert into camas_monitor_rule_asset(ipid,port,name,five_tuple_id,rule_id,accuracy,up ...

  5. Mybatis批量插入数据的两种方式

    总体描述 软件开发过程中需要批量插入数据的场景有几种: 从离线文件(excel, csv等)导入大批量数据到系统. 从其它系统定时或者人工同步大批量数据到系统. 程序自身的某些算法执行时会生成大批量数 ...

  6. sql批量插入数据mysql_MYSQL批量插入数据库实现语句性能分析

    假定我们的表结构如下: CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCH ...

  7. 【笔试面试考点】PreparedStatement和Statement的区别与联系批量插入数据的优化

    目录 ​ 一.PreparedStatement和Statement的区别去联系 一.preparedStatement与Statement的联系: 二.区别: 二.批量插入数据到数据的逐步优化 一. ...

  8. mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入

    使用 mybatis 平时都是用遍历集合 in ( ) ....,其实还可以多模糊查询和批量操作等其他操作,要明白 foreach 元素的属性主要意义,灵活使用,举例如下. 1.根据多个品牌名字分类, ...

  9. springboot执行批量插入_springboot+Mybatis 注解\Xml两种方式批量添加数据

    1.使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库,具体如下截图: 代码如下: //批量保存 @Insert ...

最新文章

  1. 第10章 序列的修改、散列和切片
  2. 一位老工程师的终告 (推荐)
  3. PHP中文件操作基础:文件路径基础
  4. android 在同一activity切换layout,在 Android Studio 添加一个activity并实现跳转
  5. Visual Source Safe的安装和使用简明教程
  6. GCD dispatch_semaphore
  7. echart 高度 不用 不撑满_注意厨房台面高度及细节 装出省心舒服 装出事半功倍...
  8. CSS尺寸和字体单位-em、px还是%
  9. 荒岛余生最后一个包裹_从《荒岛余生》看上世纪九十年代美国社会主流价值观...
  10. mysql默认密码是多少_192.168.3.1默认登录密码是多少【详细介绍】
  11. 网络校时(非NTP)
  12. 每日算法系列【LeetCode 386】字典序排数
  13. tk芯片智能机刷机方法_MTK通用刷机教程 MTK芯片智能机刷机方法
  14. 弧微分直角系最详细推导
  15. toolbar遇到问题和解决方式
  16. selenium爬取拉勾网
  17. Go语言channel
  18. 《大数据机器学习实践探索》 ---- 大数据机器学习:spark mlib 库【简介 与 架构初探】
  19. python 中文分词工具
  20. 拆解USB无线网卡,电路方案非常经典(附高清美图)

热门文章

  1. Spring AOP中declare-parents为特定的类增加新的功能
  2. Windows下第三方库安装Nuget与Vcpkg
  3. Redis5.0重量级特性Stream尝鲜
  4. 建站如此容易:WordPress3.9建站简明视频教程完成发布啦
  5. java内存管理(适合初学者)
  6. oracle数组的使用
  7. CentOS(RedHat)命令行永久修改IP地址、网关、DNS
  8. 也谈虚拟化的服务器选型,以及性能考虑
  9. 无法定位序数于动态库mfc90d.dll上 由于应用程序配置不正确...解决方法
  10. 【题解】洛谷P1283 平板涂色(搜索+暴力)