nulls first/nulls last 顾名思义,就是在检索结果集里,有null值的时候,把null值认为是最大值,还是最小值. nulls first 放置在结果集最前面 nulls last 放置在结果集最后面 CallInfoQuery query = new CallInfoQuery(); query.setOrderByClause("FILEPATH NULLS FIRST"); Criteria c = query.createCriteria(); c.andF…
select * from criss_sales; 通过rank().dense_rank().row_number()对记录进行全排列.分组排列取值但有时候,会遇到空值的情况,空值会影响得到的结果的正确性,如下所查. select dept_id ,sale_date ,goods_type ,sale_cnt ,rank() over (partition by dept_id order by sale_cnt desc) from criss_sales; 我们可以看到部门D01中的销…
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type="java.util.HashMap" id="cursorMap"> </resultMap> <select id="paging" parameterType="java.util.Map" stat…
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2016年8月24日 10:39:04 星期三 http://fanshuyao.iteye.co…
1. 首先要在项目中增加Mybatis和Oracle的Jar文件 这里我使用的版本为ojdbc7 Mybatis版本为:3.2.4 2. 在Oracle中创建User表 create table T_USERS ( ID NUMBER not null, NAME VARCHAR2(30), SEX VARCHAR2(3), BIRS DATE, MESSAGE CLOB ); create sequence SEQ_T_USERS_ID minvalue 1 maxvalue 99999999…
前言:mybatis 接收 oracle 中 LONG 类型的,报错:无效的列类型: getCLOB not implemented for class oracle.jdbc.driver.T4CLongAccessor 注意 当表中有 long 类型的字段存在时,查询多条数据(列表)时能不查这个字段就不查这个字段.因为查了这个字段会影响速度. 情况 oracle 表中有个字段为 LONG 类型,LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB.(具体详解可以百度) 由于数据库中…
原地址:http://blog.csdn.net/wp1603710463/article/details/48247817#t16 Maven+druid+MyBatis+spring+Oracle+Dubbo开发环境搭建 1.开发工具使用: MyEclipse或Eclipse,数据库使用Oracle.需要用到的软件有Zookeeper(注册中心),Tomcat(Web容器)和Maven(包管理). 2.初始环境配置: 解压zookeeper-3.4.6到自己的安装目录(安装目录中最好不要出现…
遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Error updating database.  Cause: java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 mybatis的脚本如下: <insert id="insertInfos" parameterType=&q…
最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束 错误的写法如下 <insert id="insertExpenseItem" parameterTyp…
-原理 Nulls first和nulls last是Oracle Order by支持的语法 如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc) 如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc) 使用语法如下: --将nulls始终放在最前 select * from zl_cbqc order by cb_ld nulls first   --将n…
http://blog.csdn.net/bingjie1217/article/details/21088431?utm_source=tuicool&utm_medium=referral oracle表结构 create table T_USERS ( ID NUMBER not null, NAME ), SEX ), BIRS DATE, MESSAGE CLOB ) create sequence SEQ_T_USERS_ID minvalue maxvalue start incr…
1.开发工具使用: MyEclipse或Eclipse,数据库使用Oracle.需要用到的软件有Zookeeper(注册中心),Tomcat(Web容器)和Maven(包管理). 2.初始环境配置: 解压zookeeper-3.4.6到自己的安装目录(安装目录中最好不要出现中文). 解压apache-maven-3.3.3到自己的安装目录. 解压apache-tomcat-7.0.63到自己的安装目录. 3. zookeeper-3.4.6安装与配置 1)下载zookeeper, 下载地址:ht…
存储过程在小公司用的不多,但是如果业务比较复杂或者性能要求比较苛刻的时候存储过程就派上用场了,ibatis的前期的一些版本貌似不支持存储过程因此我选择了mybatis来做实验. 1.无输入和输出参数的存储过程,我写了一个比较简单的,需要注意的是Oracle无参存储过程不能写括号 CREATE OR REPLACE Procedure cascadeoperation As Begin ; ; End; 这里执行了2个操作,可能用过mybatis的人会迷惑执行的时候到底使用update标签呢还是d…
因为Oracle数据库而言 不能够像SqlServer和MySql一样主键自增 而且MyBatis也没有提供直接的主键自增方法 所以我们自己使用查询语句来实现自增 实现代码: <insert id="Method" parameterType="package.Class" useGeneratedKeys="true" flushCache="true"> <selectKey keyProperty=&q…
最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try  catche  处理,导致控制台没有报错信息.在此仅做小记. Mapper文件中的方法定义如下: public int updateCreditStatuslist(List<UserCreditStatus> list); Mapper.xml文件的实现如下:(creditStatus是对象内部的成员,id是对象…
问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <insert id="insertStudents"> INSERT INTO Student ( id, name, age, sex ) <foreach collection="stuList" item="item" index="…
oracle区分大小写,如果不想区分,必须要用引号包住 使用mybatis的generator生成的时候,建议使用全大写表,中间用下划线隔开,会生成驼峰字段 oracle没有空字符串的概念 写mybatis的sql语句时,不能有分号 待探索…
oracle数据库创建SEQUENCE CREATE SEQUENCE SEQ_COM_MASTER START INCREMENT MINVALUE MAXVALUE NOCYCLE CACHE ; 从0开始,不循环,自增1的SEQUENCE. 查询数据库全部SEQUENCE: SELECT * FROM USER_SEQUENCES WHERE ... 当前SEQUENCE: SELECT SEQ_COM_MASTER.CURRVAL FROM DUAL; 自增后SEQUENCE: SELE…
2.1.配置 druid 数据源 2. 随后要进行druid 的数据源的配置,如果要想使用druid 的数据源,那么首先一定要去修改 pom.xml 配置文件,引入以下包: oracle官网下载 ojdbc6.jar,直接引入的依赖不能用,亲身测试 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.31<…
一.mybatis执行批量更新batch update 的方法(mysql数据库) 1.数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题,切记!切记!切记!) 我的配置如下:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 2.批量修改并加判断条件(修改字段可选) <!-- 批量更…
首先根据这篇文章:http://www.cnblogs.com/coolzdp/p/7717332.html 我们知道存储过程中 SELECT * INTO 如果没有记录是不会往下执行的,直接抛出NO_DATA_FOUND异常, 这个在plsql developer中直接测试执行没问题,会报ORA-1403异常. 但是在mybatis中调用的话就不会抛出NO_DATA_FOUND异常,而是在select * into语句为空时默默的终止执行该过程. 在服务层采用事务处理的话就有问题了,服务层调用…
由于需求涉及oracle的clob类型字段,在mybatis的mapper xml文件中编写merge into语句时总是失败. 附上错误代码 <insert id="mergeInto"> <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id"> SELECT to_char(sysdate,'yyyymmdd'…
1.新建项目 选择idea已经有的spring initializr next,然后填写项目命名,包名 然后next,选择所需要的依赖 然后一路next,finish,项目新建成功,然后可以删除下面的三个文件和包,没卵用,删掉看的舒服 然后就是建项目结构,上面java包下的可以直接new--package,但是resources的直接new--directory会变成如下的长的的包名,所以需要设置一下,点击上面的那个小齿轮,然后将下图的设置的 √ 去掉,然后就可以直接new--directory…
1.将id设置成自增序列 CREATE OR REPLACE TRIGGER "DATALIB"."TRIG_USER_ADD" BEFORE INSERT ON "sys_user" for each row begin select SEQ_USER.nextval into :new."user_id" from dual; end;ALTER TRIGGER "DATALIB"."TRIG…
引言:  在MyBatis中,希望在Oracle中插入数据之时,同一时候返回主键值,而非插入的条数... 环境:MyBatis 3.2 , Oracle. Spring 3.2   SQL Snippet in XML Configuration: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType=&qu…
MySQL支持的语法 INSERT INTO `tableX` ( `a`, `b`, `c`, `d`, `e` ) VALUES <foreach collection ="list" item="param" index= "index" separator =","> ( param.a, param.b, param.c, param.d, param.e ) </foreach> oracl…
原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475 入门请看http://blog.csdn.NET/liumengcheng/article/details/34409783 首先创建表 create table T_USERS ( ID      NUMBER not null, NAME    VARCHAR2(30), SEX     VARCHAR2(3), BIRS    DATE, MESSAGE CLOB…
mybatis在更新数据或者插入数据为空的时候必须指定jdbcType类型 1:传入的参数是对象类型 User user =new User(); INSERT INTO t_user ( id, uid, sn, EXPIRY_DATE, STUS, REASON, REMARK, )VALUES( SEQ_user.NEXTVAL, #{uid,jdbcType=VARCHAR}, #{sn,jdbcType=VARCHAR}, #{expiryDate,jdbcType=DATE}, #{…
今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /** * batchSaveAccountRole 批量给角色添加用户 * * @param role * @return R返回类型 */ @RequestMapping(value = "/batchSaveAccountRole", method = RequestMethod.PUT…
Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql语句进行优化远比使用Hibernate的查询语句简单得多. Mybatis也有它的缺点.因为它是使用原生的SQL语句,所以他的数据库兼容性不高.但是这并不妨碍它的作用,接下来,就让我们简单使用一下Mybatis. 我使用的是Eclipse,数据库为Oracle 创建一个java项目 首先,像hibe…