今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /** * batchSaveAccountRole 批量给角色添加用户 * * @param role * @return R返回类型 */ @RequestMapping(value = "/batchSaveAccountRole", method = RequestMethod.PUT…
实体类: import java.io.Serializable; public class AttachmentTable implements Serializable { private static final long serialVersionUID = 8325882509007088323L; private Integer id; // 附件名称 private String name; // 日志ID private Integer logid; // 附件URL priva…
Mybatis中Dao层 public interface UsersMapper { public void insertEntitys(List<UserEntity> users); } Oracle中批量插入 <insert id="insertEntitys" parameterType="list" useGeneratedKeys="false"> INSERT INTO tab_user(id,name)…
刚来公司实习,遇到的第一个任务就是这个,简单记录一下思路过程.人菜的很,没啥参考价值. 测试时: 将现有的oracle库转为mysql: 用的Navicat自带数据传输功能,简单粗暴 出现的问题: 1.原本在oracle中 NUMBER类型的字段转为了decimal. (1)Oracle使用序列(SEQUENCE)实现的主键递增,原本表主键是没有AUTO_INCREMENT. (2)有些decimal类型的字段是主键. (3)Decimal不能设置AUTO_INCREMENT. 解决方法: 百度…
1.首先我们做一下准备工作,在sql server和oracle分别建立一个Student表 oracle中 --创建Student表 -- create table Student( stuId number not null primary key, stuName nvarchar2() not null, stuAddress nvarchar2() null ) sql server中 --创建Student表-- create table Student( stuId int not…
SQLite数据库作为一般单机版软件的数据库,是非常优秀的,我目前单机版的软件产品线基本上全部替换Access作为优选的数据库了,在开发过程中,有时候需要批量写入数据的情况,发现传统的插入数据模式非常慢,几千条数据的写入或者更新可能需要好几分钟时间,而SqlServer则相同的操作可能几秒即可,有无更好的方法来提高它的响应速度呢?答案是有的,就是采用事务提交,默认SQLite的数据库插入操作,如果没有采用事务的话,它每次写入提交,就会触发一次事务操作,而这样几千条的数据,就会触发几千个事务的操作…
解决方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能获取所有插入的id,然后插入一个表中 注:如果不想用批量插入id做关联的其他业务逻辑,而只是简单的返回给前台,那么可以直接使用output功能返回这些id,不需要插入表. DECLARE @tmpTable TABLE ( Iden INT IDENTITY(1,1), ColumnName VARCHAR(…
mysql的方式: 方式一: useGeneratedKeys="true" keyProperty="id" 方式二: <selectKey keyProperty="studentID" resultType="String" order="AFTER"> SELECT LAST_INSERT_ID() as id </selectKey> Oracle的方式: <sele…
1.springboot 启动类加入bean 如下 // DatabaseIdProvider元素主要是为了支持不同的数据库@Beanpublic DatabaseIdProvider getDatabaseIdProvider() { DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider(); Properties properties = new Properties(); properties.setPro…
<!-- oracle --> <select id="searchUserBySearchName" parameterType="java.lang.String" resultType="com.urm.entity.User"> select * from t_user where user_name like CONCAT('%',#{search_name},'%') </select> <!…