1. mybatits 批量插入:

<insert id="insertColumnitem2">

INSERT INTO REPORT_COLUMNITEM (COLUMN_LABEL,COLUMN_FIELD,COLUMN_INDEX,REPORT_ID,COMMENTS)

<foreach collection="list" item="item" index="index" separator="union all">

select #{item.columnLabel,jdbcType=VARCHAR},#{item.columnField,jdbcType=VARCHAR},#{item.columnIndex,jdbcType=NUMERIC},

#{item.reportID,jdbcType=NUMERIC},#{item.comments,jdbcType=VARCHAR} from dual

</foreach>

</insert>

2. mybitis 模糊查询:like '%#{name}%'

3. 数据库中表比较大,查询比较慢时,可以考虑缓存。缓存包括缓存到内存和硬盘(文件)。

4. clob类型字段数据处理:如果数据库无值,先插入空值(EMPTY_CLOB())。然后再查询出来赋值,查询的时候需要注意,要锁定该条记录(select *** for update)。

然后将clob转换为具体的数据库clob类型,进行赋值。

5. ORACL 异常:can bind a LONG value only for insert into a LONG column:

原因大概如下:

1).插入到字符串长度大于4000字节。

2).插入到表中的记录的某个字段数据的实际长度大于2000个字节(如果是UTF-8,则是1333个字节);或者是插入的记录中有两个或两个以上长度大于2000字节的字符串。

3).数据库与客户端的JDBC驱动不匹配。

6.报错误:仅能绑定要插入 LONG 列的 LONG 值。错误的原因:检查插入的值是否大于该字段数据类型约束的长度。

7. union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

8. union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来。使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列

的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名。

9. 当使用union 或 union all时,我们没有必要在每一个select结果集中使用order by子句来进行排序,我们可以在最后使用一条 order by来对整个结果进行排序。

10. mybatits中因为语句中有一个小于号“<”,在XML中,会被当成一个页面元素来解析,不会处理为SQL语句的组成部分,需要将这部分语句放到<![CDATA[]]中。修改如下:

<![CDATA[

and timestampdiff(second, create_time, now()) <= 2592000

]]>

这样,将会把SQL语句中与XML页面元素相同的元素屏蔽,是的XML不将其解析为XML的元素,从而生成正确的SQL语句。

11. mybatis中打印SQL语句的日志级别为DEBUG,若想打印SQL语句,可以将日志级别设置为DEBUG即可。

12. ibatis和mybatis中$与#的区别:

对于变量部分, 应当使用#, 这样可以有效的防止sql注入, 未来,# 都是用到了prepareStement,这样对效率也有一定的提升。

$只是简单的字符拼接而已,对于非变量部分, 那只能使用$, 实际上, 在很多场合,$也是有很多实际意义的。

例如

select * from $tableName$ 对于不同的表执行统一的查询,可以在表后面加条件语句

update $tableName$ set status = #status# 每个实体一张表,改变不用实体的状态

特别提醒一下, $只是字符串拼接, 所以要特别小心sql注入问题。

DB杂记的更多相关文章

  1. legend3---6、legend3爬坑杂记

    legend3---6.legend3爬坑杂记 一.总结 一句话总结: 学东西不做项目也学不到深处,其实也就是学了没理解透, 1.lavarel中模型关联可以用的实质是? lavarel在数据库中插入 ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  3. VS15 preview 5打开文件夹自动生成slnx.VC.db SQLite库疑惑?求解答

    用VS15 preview 5打开文件夹(详情查看博客http://www.cnblogs.com/zsy/p/5962242.html中配置),文件夹下多一个slnx.VC.db文件,如下图: 本文 ...

  4. ODBC、OLE DB、 ADO的区别

    转自:http://blog.csdn.net/yinjingjing198808/article/details/7665577 一.ODBC ODBC的由来 1992年Microsoft和Syba ...

  5. Linux平台 Oracle 11gR2 RAC安装Part3:DB安装

    四.DB(Database)安装 4.1 解压DB的安装包 4.2 DB软件安装 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 11 ...

  6. SSRS ----环境配置,没有 ReportServer DB 怎么办?

    今天项目进入报表开发阶段,按照习惯,打开报表管理器,发现提示下面的错误: 错误:报表服务器无法打开与报表服务器数据库的连接.所有请求和处理都要求与数据库建立连接. 这是怎么回事儿呢,经过排查,发现数据 ...

  7. mongo DB for C#

    (1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...

  8. [Erlang 0118] Erlang 杂记 V

       我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下.    做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...

  9. jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.

    jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...

随机推荐

  1. SYN攻击处理

    针对SYN攻击的几个环节,提出相应的处理方法: 方式1:减少SYN-ACK数据包的重发次数(默认是5次): sysctl -w net.ipv4.tcp_synack_retries=3 sysctl ...

  2. C++11新特性之三——auto

    C++11中引入的auto主要有两种用途:自动类型推断和返回值占位.auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除.前后两个标准的auto,完全是两个概念 1. ...

  3. css纯字母或者字母换行显示

    white-space:normal; word-break:break-all;

  4. Spring学习笔记--在SpEL中筛选集合

    要用到Spring的util(包括util:list等),xml文件中的beans中需要添加一些有关util的信息: <?xml version="1.0" encoding ...

  5. MUI 图片上传剪切预览,可选(拍照+系统相册)

    整合网上的例子..麻蛋.没跑通..没办法.自己就拿他们的例子完善了一下..已经可以使用了! 准备工作: 这几个文件要引入.特别是JS 文件!!! <link href="../css/ ...

  6. vux报错二

    执行npm run build后 "build": "node build/build.js",   // 输出提示信息 - 提示用户请在 http 服务下查看 ...

  7. 11.事件驱动events

    事件驱动events ==> events.EventEmitter, EventEmitter 的核心就是事件发射与事件监听器功能的封装更详细的 API 文档参见 http://nodejs. ...

  8. nutch 1.7导入Eclipse

    1.下载Nutch1.7的包 apache-nutch-1.7-src.zip,解压之后应该包括 bin,conf,src等目录 2.将解压之后的 apache-nutch-1.7 文件夹放到ecli ...

  9. MVC之Filter

    过滤器的理解 Filter就是过滤器,在WebForm中,各种管道事件就是相当于过滤器,在MVC中,过滤器是单独的一种机制,分为方法过滤器和异常处理过滤器,方法过滤器实现的功能是在执行某一个请求得方法 ...

  10. VS2012/2013引用对话框的糟糕设计

    先看两张图: 1. 首次打开引用对话框(Reference Manager),Name显示不全: (图1) 2. 然后双击或拖动splitter,让Name显示全: (图2) 3. 下次再打开引用对话 ...