DB杂记

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即可。

时间: 2024-10-06 23:23:05

DB杂记的相关文章

【WinForm】杂记(1):C#读取DB文件

第一步 下载DLL文件并安装 DLL下载地址https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选用版本sqlite-netFx46-setup-bundle-x64-2015-1.0.112.0.exe,适用框架.NET Framework 4.6(可以根据自己的需要选用). 下载后,系统默认安装在C:\Program Files\System.Data.SQLite路径下,拷贝System.Data.S

Mac&#160;下locate命令使用问题WARNING: The locate database (/var/db/locate.database) does not exist.

想在Mac下使用locate时,提醒数据库没创建: WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the d

centos 6 oracle 11G DB install

因业务迁移,需重新部署oracle DB,此文仅作部署记录,部署文档主要参考官方文档http://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm 概要: 主机:OpenStack 云主机 系统:Completing a Minimal Linux centos 6.8 x86_64 DB:Oracle Database 11g Release 2(11.2) 内存:2Gb 硬盘:/dev/vda 20Gb /dev/vdb 30Gb

RDBMS DBMS MS DB

RDBMS系统是在E.F.Codd博士发表的论文<大规模共享数据银行的关系型模型>(Communications of the ACM杂志1970年6月刊)基础上设计出来的.它通过数据.关系和对数据的约束三者组成的数据模型来存放和管理数据.三十多年来,RDBMS获得了长足 的发展,目前许多企业的在线交易处理系统.内部财务系统.客户管理系统等大多采用了RDBMS.太字节级关系型数据库在大型企业集团中已是司空见惯.目前 业界普遍使用的关系型数据库管理系统产品有IBM DB2通用数据库.Oracle

关于jFinal Db.query与Db.find 的理解

1.Db.query,返回的是List<Model>类型,实际上返回的却是 Model 的数组: 2.Db.find,返回List<Reocrd>类型,实际上是recrod的 list: 3.所以相关Mode中的dao只有find,没有query,只有Db类中既有find也有query,可以灵活运用

【DB】范式

在我的上一篇博客<[DB]函数依赖>中,主要讲解了什么是函数依赖以及局部和传递依赖(FD).在没有FD时,关系中是不可能有数据冗余,但当FD存在时,关系中就有可能存在数据冗余.如何消除呢?答案是模式分解.那么分解成什么样子,如何来衡量关系模式的好与坏?答案是范式(NF)! NF的种类与FD有着直接的联系,基于FD的范式有1NF.2NF.3NF.BCNF.4NF等多种.下面就分别介绍一下! 1NF 关系模式R的每个关系r,其属性为单值属性 2NF 消除局部依赖 3NF 消除传递依赖 BCNF 在

[转]Oracle DB 查看预警日志

"Database(数据库)"主页>"Related Links相关链接)"区域> "Alert Log Content (预警日志内容)" 查看预警日志 每个数据库都有一个alert_<sid >.log文件.此文件位于数据库所在的服务器中,如果设置了$ORACLE_BASE,则此文件默认存储在$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace中. 数据库预

C#实用杂记-EF全性能优化技巧

原文链接:http://www.makmong.com/947.html#comment-31 EntityFramework 优化建议 2016年1月15日 下午4:54 LEILINKANG Entity Framework目前最新版本是6.1.3,当然Entity Framework 7 目前还是预览版,并不能投入正式生产环境,估计正式版16年第一季度会出来,了解过EF7的部分新特性后,还是狠狠期待一下滴. EF性能问题一直为开发者所诟病,最让人纠结的也是这块,所以此次我也来谈谈EF的性能

DB处理大量数据处理日志报错问题

因为当插入.更新或删除大批量数据的时候,有时候会出现事务日志满的问题,所以解决步骤 1.连接到当前数据库 db2 connect to uppdb 2.查看数据库配置文件 db2 get db cfg for uppdb 此命令可以查看数据库相关配置,包括字符集.日志文件大小等 查看当前数据库的日志文件大小(LOGFILSIZ),主日志数(LOGPRIMARY),辅日志数(LOGSECOND) 一般默认设置:logfilsiz:4k,logprimary:10,logsecond:2 3.修改日