`
siser344
  • 浏览: 21762 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DataFieldMaxValueIncrementer 管理主键

阅读更多

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判断表是否有主键,如何添加主键和移除主键

    SQL判断表是否有主键,如何添加主键和移除主键 这是一个很好的例子个大家分享,以后我会及时更新

    获取数据库所有主键获取数据库所有主键

    获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键获取数据库所有主键

    hibernate 无主键表映射

    hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档

    MySQL 主键与索引的联系与区别分析

    关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),...

    Hibernate注解映射联合主键

    第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并...

    数据库主键生成资料资源

    数据库主键生成,对主键的操作,主键,标识记录,找到记录 主键

    Java SE程序 自定义主键JComponent

    Java SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE程序 自定义主键JComponentJava SE...

    sqlserver无主键表的同步方案1

    背景介绍对sqlserver做数据库同步的时候,由于医院服务器和数据库版本的限制,选择了用发布订阅处理数据库同步,但是这个方式只能处理有主键的表,对于无主键的表

    主键是Long型的id生成方法,Java实现

    主键是Long型的id生成方法,Java实现.snowflake算法.

    mybatis自增主键文档

    mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 Mysql 自增主键,至于其他的手动生成唯一主键的问题在这里就不讨论了,这里主要说明下...

    持久化类主键生成策略+例子

    持久化类主键生成策略+例子 jpa 4种 hibernate 13种

    删除无主键重复语句

    删除无主键重复语句删除无主键重复语句删除无主键重复语句删除无主键重复语句

    SqlServer 永不重复的主键(非自增列)

    数据库自增列主键在数据库还原时百分百会出问题 为解决该问题特开发自定义式的主键 创建一个监控表,一个被调用的存储过程即可,推荐有存储过程编广泛使用的程序使用 调用方法 DECLARE @PKID CHAR(12)='' EXEC [dbo]....

    初探SQL语句复合主键与联合主键

    一、复合主键  所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。 比如 create table test ( name varchar(19), id number, value varchar(10), primary key ...

    Hibernate各种主键生成策略与配置详解

    关于Hibernate的各种主键生成策略与配置详解

    hibernate主键生成策略详解

    Hibernate各种主键生成策略与配置详解 1、assigned 主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用...

    hibernate复合主键的实例

    hibernate复合主键的实例,hibernate复合主键的实例。

    JPA学习笔记-EJB-03JPA主键生成策略总结

    总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键类型。我们分2种情况分别讨论。 第一种单字段主键...

    hibernate复合主键映射

    复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射

Global site tag (gtag.js) - Google Analytics