package com.sise.spring.dao.impl;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
import org.springframework.jdbc.support.lob.LobCreator;
import org.springframework.jdbc.support.lob.LobHandler;
import com.sise.spring.dao.OrderDao;
import com.sise.spring.entiey.Order;
public class OrderDaoImpl extends JdbcDaoSupport implements OrderDao {
private LobHandler lobHander;
//主键值产生器
private DataFieldMaxValueIncrementer incre;
public void setLobHander(LobHandler lobHander) {
this.lobHander = lobHander;
}
public void setIncre(DataFieldMaxValueIncrementer incre) {
this.incre = incre;
}
public void addOrder(final Order order){
String sql = "insert into t_order(order_id,user_id,order_con) values(?,?,?)";
getJdbcTemplate().execute(sql,new AbstractLobCreatingPreparedStatementCallback(this.lobHander) {
@Override
protected void setValues(PreparedStatement ps, LobCreator lobCreator)
throws SQLException, DataAccessException {
ps.setInt(1, incre.nextIntValue());
ps.setInt(2, order.getUserId());
lobCreator.setClobAsString(ps, 3, order.getOrderCon());
}
});
}
public List getOrders(int orderId) {
// TODO Auto-generated method stub
return null;
}
}
这个小小的例子主要的是解决并发的问题,在下面的例子我会做一个全部表的主键放到一个序列表上面来统一管理
我给出部分代码,全部代码我放在附件里
OrderDaoImpl.java
分享到:
相关推荐
SQL判断表是否有主键,如何添加主键和移除主键 这是一个很好的例子个大家分享,以后我会及时更新
获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键
hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档
关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),...
第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并...
数据库主键生成,对主键的操作,主键,标识记录,找到记录 主键
Java SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE...
背景介绍对sqlserver做数据库同步的时候,由于医院服务器和数据库版本的限制,选择了用发布订阅处理数据库同步,但是这个方式只能处理有主键的表,对于无主键的表
主键是Long型的id生成方法,Java实现.snowflake算法.
mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下...
持久化类主键生成策略+例子 jpa 4种 hibernate 13种
删除无主键重复语句删除无主键重复语句删除无主键重复语句删除无主键重复语句
数据库自增列主键在数据库还原时百分百会出问题 为解决该问题特开发自定义式的主键 创建一个监控表,一个被调用的存储过程即可,推荐有存储过程编广泛使用的程序使用 调用方法 DECLARE @PKID CHAR(12)='' EXEC [dbo]....
一、复合主键 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。 比如 create table test ( name varchar(19), id number, value varchar(10), primary key ...
关于Hibernate的各种主键生成策略与配置详解
Hibernate各种主键生成策略与配置详解 1、assigned 主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用...
hibernate复合主键的实例,hibernate复合主键的实例。
总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键类型。我们分2种情况分别讨论。 第一种单字段主键...
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射