mysql mybatis 函数_mysql和oracle的mybatis操作

1.Oracle、MySQL插入时返回下一个主键的操作

Oracle:

SELECT SEQ_ROLE.NEXTVAL AS ID FROM DUAL

insert into ROLE(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

注意:这边的keyProperty="id"中"id"指的是Java对象ROLE中的属性,而并非数据库中ROLE表的属性。

1.2.Oracle、MySQL插入时返回当前主键的操作

Oracle:

SELECT seq_LSP_ROLE.currval as ROLEID from DUAL

insert into ROLE(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

MySQL:

insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now())

注意:role表的role_id字段是自动增长的,所以插入时不需要传入值;keyProperty="roleId"中"roleId"指的是Java对象Role中的属性,而并非数据库中role表的属性。

2.查询‘_’,'%' 这样的字符

java: roleName= roleName.replaceAll("_", "/_");

roleName= roleName.replaceAll("%", "/%");

resultType="java.lang.Integer">

SELECT COUNT(1) FROM LSP_ROLE_TAB T

AND T.ROLE_NAME LIKE CONCAT('%',CONCAT(#{roleName},'%')) ESCAPE '/'

AND T.DELETE_FLAG = 0

3.插入、修改时存储创建、修改时间为数据库时间

Oracle: insert into role(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)

MySQL: insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now())

4.关系运算符的处理及转义

主要处理的是小于/小于等于符号(”

...

包含在之间可避免

5.批量插入、修改、删除操作

  insert into role_authority (role_id, authority_id) values      (${item.roleId}, ${item.authorityId})  

  DELETE FROM ld_user WHERE id IN        #{item}  

6.模糊查询

AND t2.`name` LIKE "%"#{entName,jdbcType=VARCHAR}"%"

AND t3.`name` LIKE "%"#{prdName,jdbcType=VARCHAR}"%"

AND T.ROLE_NAME LIKE CONCAT('%',CONCAT(#{roleName},'%'))

6.分页

resultMap="BaseResultMap">

select

from (select ROWNUM as rn,

FROM LSP_MUTUALINFO_TAB t

and t.SERVER_NAME like CONCAT('%',CONCAT(#{serverName},'%')) escape '/'

and t.SERVER_ID = #{serverId,jdbcType=VARCHAR}

)

#{iPageIndex} ]]>

1、将根据name相同 ID不同来的方式来判断(id必须唯一)

delete from test a where exists (select null from test b where b.name=a.name and b.id>a.id);

2、用rowid 来代替其中的id,比上面的方法更适用,没有字段唯一限制

delete from test a where exists (select null from test b where b.name=a.name and b.rowid>a.rowid);

3、  通过分析函数根据name 分组生成序号,然后删除序号大于1 的数据

这里的ROW_NUMBER() OVER (partition by name order by name) 是先把name列升序,再为降序以后的没条name记录返回一个序号,

delete from test     where rowid in (select rowid                       from (select rowid as rid,                                    row_number() over(partition by name order by id) as seq                               from test)                      where seq > 1);

MySQL 和 Oracle 在 MyBatis 使用中的区别

MySQL 和 Oracle 在 MyBatis 使用中的区别: 区别 MySQL Oracle 存储过程的参数模式 mode 为 IN 时,是否需要指定 jdbcType 不需要:MyBatis 为 ...

MySQL转Oracle,MyBatis Mapper XML 文件修改项总结

1.对于批量插入 需要更改成 insert into(a,b,c)

Spring Boot(六)集成 MyBatis 操作 MySQL 8

一.简介 1.1 MyBatis介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集. ...

mybatis中mysql和oracle的差异

1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不 ...

MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...

Spark记录-SparkSQL远程操作MySQL和ORACLE

1.项目引入mysql和oracle驱动 2.将mysql和oracle驱动上传到hdfs 3.远程调试源代码如下: import org.apache.spark.sql.SQLContext im ...

kotlin + springboot整合mybatis操作mysql数据库及单元测试

项目mybatis操作数据库参考: http://how2j.cn/k/springboot/springboot-mybatis/1649.html?p=78908 junit对controller ...

备战金九银十,Java研发面试题(Spring、MySQL、JVM、Mybatis、Redis、Tomcat)[带答案],刷起来!

八月在即,马上就是"金九银十",又是跳槽招聘季.咱们这行公认涨薪不如跳槽加的快.但不建议频繁跳槽,还是要学会融合团队,抓住每个机会提升技能. 苏先生在这里给大家整理了一套各大互联网 ...

JAVA - SpringBoot项目引用MyBatis操作数据库

JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...

随机推荐

[LintCode] Add Two Numbers 两个数字相加

You have two numbers represented by a linked list, where each node contains a single digit. The digi ...

ASP.NET本质论第一章网站应用程序学习笔记3-对象化的Http

在.NET环境下,万物皆对象,在HttpRuntime收到请求之后,立即将通过HttpWorkerRequest传递的参数进行分析和分解,创建方便用于网站应用程序处理用的对象,其中主要涉及到两个对象类 ...

关于Qt的事件循环以及QEventLoop的简单使用

1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicaton::exec() 2 QApplication::exec() 3 QDialog::exec() ...

[转]android自动弹出软键盘(输入键盘)

转自:http://www.devdiv.com/home.php?mod=space&uid=65729&do=blog&id=11847 很多应用中对于一个界面比如进入搜索 ...

css常用属性2

1  浮动和清除浮动 在上篇的第十一节--定位中说道: CSS 有三种基本的定位机制:普通流.浮动和绝对定位. 普通流和绝对定位已经说完,接下来就是浮动了. 什么是浮动? CSS 的 Float(浮动 ...

Supported method argument types Spring MVC

Supported method argument types The following are the supported method arguments: Request or respons ...

LocalVariableTable之 Slot 复用

LocalVariableTable中的 Slot, 是存在复用现象的,这个我早就知道,但是,不太清楚是如何复用的. Java语言规范与JVM规范都没有对Java语言具体要如何使用JVM的局部变量sl ...

IDEA报错No Spring WebApplicationInitializer types detected on classpath

IDEA报错No Spring WebApplicationInitializer types detected on classpath https://my.oschina.net/sprouti ...

Spring的事务管理1

事务的回顾: 事务:逻辑上的一组操作,组成这组事务的各个单元,要么全部成功,要么全部失败 事务的特性:ACID 原子性(Atomicity):事务不可分割 一致性(Consistency):事务执行前 ...

dede:field name=’position’标签调用 主页改成英文Home和改变符号

在用dede:field name=’position’ 这个标签的时候我们调用的这个就是中文的,出现的是主页>+相应的栏目  ,那么这个问题怎么改成英文的呢?有好多大虾都说找到dede安装目录 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值