测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: 1 package me.gacl.demo; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import me.gacl.utils.JdbcU…
ibatis实战之插入数据(自动生成主键) --------- 如果你将数据库设计为使用自动生成的主键,就可以使用ibatis的<selectKey>元素(该元素是<insert>元素的一个专用子元素)来获取这些自动生成的主键的值并将其保存在对象中.完成这项工作可以有两种方式,具体选择何种方式由你所使用的具体的主键生成技术来确定. 第一种方式是,当你把记录插入到数据库中并且数据库为该记录自动生成了主键值之后,就立即抓取该键值.此时要注意的是,必须确保所使用的数据库驱动程序确实能返回…
一.使用Oracle数据库 举例:添加员工的时候自动生成主键 1.在dao接口中声明方法 2.在mapper中实现该方法 需要先在数据表中创建序列 3.测试 注意:在调用过save方法之后,emp对象的主键就有值了,在后面的程序中可以直接使用. 二.使用mysql数据库 1.在项目中导入mysql的驱动 2.在mybatis的主配置文件中,声明MySQL的环境 3.修改sqlsessionFactoryUtil  ,让程序使用mysql的环境 4.在dao中声明方法 5.在mapper中实现该方…
package com.alibaba.sql; import java.lang.reflect.InvocationTargetException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.A…
<insert id="insert" parameterType="cn.zno.smse.pojo.UserScan" useGeneratedKeys="true" keyProperty="scanId"> 无法返回自动生成的ID, 解决: 数据库中设计表,中勾选自动递增. mysql <table tableName="usertest" domainObjectName=&qu…
mysql的方式: 方式一: useGeneratedKeys="true" keyProperty="id" 方式二: <selectKey keyProperty="studentID" resultType="String" order="AFTER"> SELECT LAST_INSERT_ID() as id </selectKey> Oracle的方式: <sele…
DemoMapper.java //注意方法的返回值必须是void; void add(Demo demo); ============================================== demoMapper.xml: <insert id="add" parameterType="com.demo.pojo.Demo">       <selectKey keyProperty="demoId" result…
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2016年8月24日 10:39:04 星期三 http://fanshuyao.iteye.co…
7.4  Spring提供的其它帮助 7.4.1  SimpleJdbc方式 Spring JDBC抽象框架提供SimpleJdbcInsert和SimpleJdbcCall类,这两个类通过利用JDBC驱动提供的数据库元数据来简化JDBC操作. 1.SimpleJdbcInsert: 用于插入数据,根据数据库元数据进行插入数据,本类用于简化插入操作,提供三种类型方法:execute方法用于普通插入.executeAndReturnKey及executeAndReturnKeyHolder方法用于…
测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: 1 package me.gacl.demo; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import me.gacl.utils.JdbcU…
测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: 1 package me.gacl.demo; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import me.gacl.utils.JdbcU…
public class testGetKeyValue { /** * 取得数据库自动生成的主键 */ @Test public void testGeneratedKeys() { Connection conn = null; PreparedStatement ps = null; ResultSet rs=null; try { conn = JDBCTools.getConnection(); String sql = "INSERT INTO customers(name,emai…
一些类,在前面的博客中有,就不重复了 public class Test2 { TestDAO t=new TestDAO(); /*前提是数据表的主键是自动增加的, *取得数据库自动生成的主键 * */ @Test public void testGetKeyValues() throws Exception{ Connection connection=null; PreparedStatement preparedStatement=null; try { String sql="inse…
测试脚本如下: 1 create table test1 2 ( 3 id int primary key auto_increment, 4 name varchar(20) 5 ); 测试代码: package me.tanlei.demo; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import…
场景 保存订单数据和订单详情数据时需要将订单的主键作为关联子段添加到明细表中,需要将保存订单时的主键返回给供保存明细表时使用 添加xml中新增数据时的配置 <insert id="insertSelective" parameterType="com.hanilucky.core.vo.Orders" useGeneratedKeys="true" keyColumn="UUID" keyProperty="u…
安卓使用SQlite3数据库无法id主键无法自动增加?不是的. 要这样写:id integer primary key ,要写integer而不是int所以会报错! http://blog.csdn.net/zhaocundang SQLite帮助类中,这样写就可以id号自动增加 public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table users(i…
新建一个项目,每次写hibernate部分,就觉得pojo和hbm.xml部分很蛋疼.今天搜索了半天,终于知道如何根据数据库自动生成了. Intellij IDEA14创建maven时并不能勾选各种支持,都是后期添加 如图所示: 添加了hibernate之后,如图所以显示数据库 然后 在新界面中添加数据库驱动和数据库链接信息. 然后如图所示操作 选好数据库,选好包的位置,在下面勾上要生成的表对应的pojo,添加到sessionFactory,并且勾上为每一个pojo生成XML即可. 确定以后即生…
T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML等代码. 下载示例代码 一 “Hello World ”代码生成器 1 创建一个C# Console工程,添加一个名为“HelloWorld.tt”的文本文件,将<#@ output extension=".cs" #>设为".cs"便会生成cs文件. 2 …
使用xorm工具,根据数据库自动生成 go 代码 引入 使用 golang 操作数据库的同学都会遇到一个问题 -- 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系.久而久之,这是一个非常繁琐的过程.事情变得繁琐了,我们都会想,有没有好的办法自动生成 model 呢?今天,记录一种自动生成代码的方法 -- xorm 工具. 关于 xorm xorm是一个简单而强大的Go语言ORM库. 通过它可…
使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系.久而久之,这是一个非常繁琐的过程.事情变得繁琐了,我们都会想,有没有好的办法自动生成 model 呢?今天,记录一种自动生成代码的方法 —— xorm 工具. 关于 xorm xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便.我在项目中经常使用,它的特性如下…
学习作业2: 问题1:主键都有哪些方式?   问题2:本次实战案例建立的主键采用哪种方式?   问题3:猜猜金蝶K3WISE建立的主键采用哪种方式?   问题4:谈谈手工主键增长设置具体实现思路?(选答)   问题5:GUID主键是啥玩意?(选答)   ============================================= ============================================= 知识点: 1.创建主键的三种方法 方法一: CREATE TA…
说明:MyCAT自增长主键和返回生成主键ID的实现 1) mysql本身对非自增长主键,使用last_insert_id()是不会返回结果的,只会返回0:这里做一个简单的测试 创建测试表 -------------------------------------- --创建测试表 ------------------------------------- USE test; CREATE TABLE IF NOT EXISTS t_auto_increment ( id INT NOT NULL…
#cnblogs_post_body.cnblogs-markdown p img { max-width: 95%; } HiLo是在NHiernate中生成主键的一种方式,不过现在我们可以在Entity Framework Core中使用.所以在这篇内容中,我将向您在介绍如何在Entity Framework Core中使用HiLo生成主键. 什么是Hilo? HiLo是High Low的简写,翻译成中文叫高低位模式. HiLo是由"Hi"和"Lo"两部分生成主…
http://stackoverflow.com/questions/24725261/how-to-use-a-custom-identity-column-in-sql-with-entity-framework 情景,在mysql的一张表里面的id字段是主键,但是这个主键的值,不是自增的,也不是用户传入的,而是当insert的时候,由触发器来生成的. 这是触发器代码 我们到edmx模型中看看 EF生成的 , 很诡异的是, 由于我们的 creationtime 的字段是 timestamp…
在mysql中,可以使用uuid 来生成主键,但是用mysql的uuid()函数 ,生成的uuid是36位的,其中包含32个字符以及4个分隔符(-), 往往这个分隔符对我们来说是没有用的,可以使用mysql自带的replace函数去掉分隔符 replace(uuid(),'-','')   ---->将uuid()中的‘-’,去掉,即替换成空串: 此外 upper(replace(uuid(),'-',''))用于将字符转换为大写 JAVA文件中也可生成UUID主键: package ---;…
MybatisPlus生成主键策略方法 全局id生成策略[因为是全局id所以不推荐] SpringBoot集成Mybatis-Plus 在yaml配置文件中添加MP配置 mybatis-plus: global-config: db-config: #主键类型(auto:"自增id",assign_id:"全局唯一id(雪花算法,Long或者String类型)", assign_uuid:"全局唯一id(无中划线的uuid)",input:&qu…
需求说明 在过去单机系统中,生成唯一ID比较简单,可以使用MySQL的自增主键或者Oracle中的sequence, 在现在的大型高并发分布式系统中,以上策略就会有问题了,因为不同的数据库会部署到不同的机器上,一般都是多主实例,而且再加上高并发的话,就会有重复ID的情况了.至于为什么会有重复就不多说了,技术人员都懂的. 本文讲述的案例不仅仅局限于数据库中的ID主键生产,也可以适用于其他分布式环境中的唯一标示,比如全局唯一事务ID,日志追踪时的唯一标示等. 先列出笔者最喜欢的一种全局唯一ID的生成…
在做Access数据库设计时,常常直接在access文件中建表,建字段,然后写设计文档时,又得重新再写一遍字段和表间关系.其实access数据库自己就支持自动生成数据库文档. 操作方法如下: 数据库工具 -> 数据库文档管理器 -> 全部对象类型 然后选中你要生成的表和关系,点确定按钮即可自动生成数据库设计文档.…
主要参考微软官方文档 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db Microsoft .NET Framework 的安装这里不再赘述,大家开发机器上一般4.0.4.5都有 里面用到 powershell 命令行,powershell 版本必须是3.0或者以上,2.0会报错,请先升级 powershell 版本 版本太低,报错信息如下 The Entity Framework Core P…
在数据库开发中,很多时候建一个表的时候会使用一个数字类型来作为主键,使用自增长类型自然会更方便,只是本人从来不喜欢有内容不在自己掌控之中,况且自增长类型在进行数据库复制时会比较麻烦.所以本人一直使用自己生成最大数字来保存主键.只是多任务同时写入数据库时,就偶尔会有主键冲突的情况出现了.因为得到最大数值时的查询语句如果同时进行就会出现相同的数字ID了.考虑到如果进行锁表的代价比较大,所以经过考虑,还是在一个表中保存最大ID这种速度快并且锁定的代价很小.本人使用SqlServer2008R2数据库,…