hibernate 返回新插入数据的Id】的更多相关文章

例如 表明 studentInfo String sql="set set nocount on studentInfo(列名,列名) values('值','值');select @@identity as inserId"; java代码: public int executeCount(String sql, Map<String, Object> paramMap) { Session session = sessionFactory.getCurrentSessi…
使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@identity 表示当前新增的主键ID 这个是在一个session中查找的, SELECT MAX(id) FROM Users 执行这个查询,就可以返回最新的ID   来自为知笔记(Wiz)…
处理方法在某个字段上加上identity id int identity(1,1), 创建标识的三种方法及比较: SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY. IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值. IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表.IDENT_CURRENT 返回…
DECLARE  newID varchar2(50);begininsert into table1 (aa,bb) values('7777','8888') RETURNING ID INTO newID;COMMIT;insert into table2 (pid) values(newID);end;…
SQLite数据库中有一有列名为ID的自增列,项目需求要在向数据库在插入新数据的同时返回新插入数据行的ID. 我这里用事务,把插入和查询语句通过ExecuteReader一起提交,返回DbDataReader. 实现代码 public bool Insert(string topic, string key, string value, out int id) { DbProviderFactory factory = SQLiteFactory.Instance; using (DbConne…
当对数据库进行插入数据后,有时会需要刚插入的数据的id值,以作他用,整理如下: conn = pymysql.connect(, user=DB_USER, passwd=DB_PASSWORD, db=DB_DATABASE, charset=DB_CHARSET)cursor = conn.cursor()query = 'insert into bz_tag(name,type,`desc`,sort,status,created_at,updated_at) ' \ 'VALUES(%s…
首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: insert into Student(S_StuNo,S_Name,S_Sex,S_Height) '); select @@IDENTITY -- 返回 17 @@IDENTITY可以返回当前连接所有范围内插入最后所生成的标识值(包括任何调用的存储过程和触发器).这个函数不只是可以适用于表.函数返回的值是最后表插入行生成的标识值.比如,…
简单的总结一下如何在mysql中出入一条数据后,返回该条数据的id ,假如之后代码需要这个id,这样做起来就变得非常方便,内容如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="User"> insert into user(userName,password,comment) val…
create or replace trigger t before update on test5 for each rowbegin insert into test55 values (:old.id,:old.name);end ; -------------------------------------------------------------------------------------- --表中插入数据时ID自动增长 create table ttt (id numbe…
例如我们新建了一张表UserInformation,字段如下Id,为主键,自增,其它字段Name,Pwd,Email 然后我们来执行一个新增插入操作: insert into UserInformation (Name,Pwd,Email) values('小明','123','111') 我们想在新增插入数据的时候获取到插入这条数据的主键的值是多少, 解决的方法有两种: 1.一种是直接输入某个字段,然后查询,代码如下: insert into UserInformation (Name,Pwd…
--插入数据,并返回刚刚插入的数据id INSERT INTO [soloreztest] ([name]) output inserted.id VALUES ('solorez') --执行结果: --id ------------- --5 (1 行受影响) 第二种方法:insert into table1 values(colvalue1,colvalue2)select ident_current('table1') 第三种方法:insert into table1 values(co…
hibernate向MySQL插入一条数据后,得到该条数据主键的方法.主键是自增长的. 保存完成后,直接用该实体的getId的方法就可以得到.因为保存完成后,hibernate会自动将id赋值给实体.关键代码如下: public int saveSubChanel(SubjectChannelDto sDto) { subjectChannelRelDao.saveOrUpdate(sDto); return sDto.getSubjectId(); }…
--创建数据库和表create database MyDataBaseuse MyDataBase create table mytable(id int identity(1,1),name varchar(20)) --执行这个SQL,就能查出来刚插入记录对应的自增列的值insert into mytable values('李四')select @@identity 二.三种方式的比较 SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY.IDE…
在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁.     这种做法需要的步骤比较多,有些麻烦,而且并发性也不好.有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作.乍一看,它和select max(id)很象,但实际上它是线程安全的.也就是…
//插入一条数据 $sql = "INSERT INTO `table_name` (`name`,age) VALUES ('小明','23')"; $dsql->SetQuery($sql);//格式化查询语句 $dsql->ExecNoneQuery();//执行SQL操作 $lastInsertID = $dsql->GetLastID(); //获取插入后的最后的ID…
sqlserver有output,Oracle有Sequence.Access用下面的方法: public int InsertEx(User user) { ; using (OleDbConnection conn = new OleDbConnection(AccessHelper.connectionString)) { conn.Open(); OleDbCommand cmd = new OleDbCommand { Connection = conn, CommandType =…
单条数据时model->attributes['id']; 循环插入时使用 Yii::app()->db->getLastInsertID() 获取 循环插入时需要每次插入后重置 model->primarykey =0; 或 model->id = 0;model->setIsNewRecord(true); …
<insert id="insert" parameterType="com.lls.model.Employee"> <!-- selectKey 标签表示子查询中主键的提取问题 resultType表示返回主键的数据类型 keyProperty表示将属性设置到某个列中 此处为id order="AFTER表示在插入语句之后执行 resultType="long"表示返回值得类型为long类型 -->    …
比如做一个学生选课系统 数据库有3张表 students(ID,Name,Age) ,courses(ID,Name),selectedcourses(studentID,courseID)括号里是字段. 下面是存储过程 根据传来的学生姓名以及选课构成的字符串,保存数据 @name nvarchar(), @age int, @text nvarchar(),-- 比如@text='1|4|15|' AS begin declare @tmp nvarchar() declare @stuid…
.对于提交(最后一次操作commit了)的话可以查询那个提交段 SELECT 列名1,列名2…… FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE where VERSIONS_STARTTIME IS NOT null ORDER BY VERSIONS_STARTTIME DESC; 查出来的第一条就是最后改变的数据 .如果表里面有序列或固定的排序字段可按倒排序后取第一条 order by 排序字段 desc .还有另外一种办法…
用web框架技术,使用Hibernate向数据库添加信息,控制台显示插入成功的语句,可是数据库却没有值:错误如下: (1)不要自己创建数据库!!,Web框架可以自己自动生成,自己创建可能会报错! (2)出错原因还有就是:没有提交!!(加上就可以) session.getTransaction().commit(); (3)最后不要忘记关闭session,sFactory!!! session.close(); sFactory.close();…
create table tblInsert ( id ,) primary key, name ) ); insert into tblInsert(name) values('张三'); select * from tblInsert; insert into tblInsert(name) values('李四'); select @@IDENTITY;--方式一 -- 使用inserted临时表 方式二 insert into tblInsert(name) output inserte…
CREATE OR REPLACE FUNCTION SEQ1 (v_bname in VARCHAR2) return NUMBER is v_bcount NUMBER; BEGIN execute immediate 'select count(*) from '||v_bname into v_bcount; dbms_output.put_line(v_bname||'------------------'||v_bcount); return(v_bcount+1); end SEQ…
在sql sever中实现插入数据的自动增长是很容易的,但是在oracle数据库中实现这一操作不是很容易,同时要想在.net中实现获取新插入数据的id,而 且不会出现读错的情况,就更显得困难了,为了解决在oracle数据中插入的数据能够自增id,同时获取新数据的id,并避免因并发操作而出现的id读错 的问题. 数据表结构为test(id,name) 首先,解决数据id自增问题 创建一个序列sequence(sequence详解可从网上搜一下,这里不赘述) create sequence SEQ_…
使用sql语句实现同时向主表和子表插入数据方法: Oracle: -- oracle创建sequence create sequence SEQ_test minvalue 1 maxvalue 99999999999999999999999999 start with 21 increment by 1 cache 20; -- oracle 得到新插入数据的ID并使用 DECLARE newID varchar2(50); begin insert into table1(ID,aa,bb)…
user = User(‘name’=‘张三’)db.session.add(user)db.session.flush()#输出新插入数据的主键print(user.id)#此时数据才插入到数据库中db.session.commit()…
近期在做订单系统开发的时候遇到了此类情景,A表内插入后返回新插入的主键ID,然后用于B表插入数据并携带此id. 目前有几个方法总结 No1.每次插入数据之后返回A表内的最大值,但是对于多用户以及高并发来说这个方案不可行,首先是数据量大对数据库造成的压力也大,其次高并发时会造成数据丢失或者数据重复的问题,So,此方法Out! No2.插入数据之后调用mysql_insert_id(),mysql_insert_id() 返回给定的 connection 中上一步 INSERT 查询中产生的 AUT…
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键. 比如添加一个用户,同时返回插入用户后得到的用户id: /** * 添加用户信息 * @param user * @throws Exception */ public int insertUser(User user) thro…
1. 主键ID 自增 ,插入数据后返回这条数据的ID值 insert into tableName() values() select @@identity 2.主键ID 使用GUID类型值 ,插入数据后返回这条数据的ID值 insert into tableName() output inserted.id values() 如果想返回插入数据的其他字段的值可以修改 inserted.id.…
向mysql 插入数据时,很多时候我们想知道刚刚插入数据的id,这对我们很有用.下面这篇文章就详细给大家介绍了利用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID,有需要的朋友们可以参考借鉴,感兴趣的朋友们下面来一起看看吧. 前言 最近在工作中又遇到了这个问题,PHP中如何获得刚插入数据的ID(或当前发布文章的ID)呢?觉得有必要整理下详细的解决方法,方便自己也给有需要的朋友们提供以帮助,那么话不多说了,来看看详细的解决介绍. 解决方法 其实用 mysql_insert_…