自定义表中自增列

数据库表

create table d_xt_bh(
	bm varchar (50) not null ,
	bh bigint not null default (0),
	constraint pk_d_xt_bh primary key (bm)
)

存储过程

create     procedure dbo.p_xt_idbuilder 
@tablename varchar(50),
@interval varchar(50)

as

begin transaction
update d_xt_bh set bh=bh+@interval where bm=@tablename
select bh from d_xt_bh where bm=@tablename
commit

java类

package com.itlwc.tools.util;  
  
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.itlwc.tools.jdbc.DBConnection;
  
public class Builder {  
    public static synchronized String retrieveId(String tableName,String interval) 
    	throws SQLException {  
        Connection conn = DBConnection.getConn();  
        String sql = "exec p_xt_idbuilder '" + tableName + "','" + interval+ "'";  
        PreparedStatement ps = conn.prepareStatement(sql);  
        ResultSet rs = ps.executeQuery();  
        String maxId = "";  
        if(rs.next()){  
            maxId = rs.getString("bh");  
        }  
        DBConnection.close(rs, ps, conn);  
        return maxId;  
    }  
    public static synchronized String retrieveId(String tableName)  
            throws SQLException {  
        return retrieveId(tableName, "1");  
    }
    //测试
    public static void main(String[] args) {
		try {
			String str = retrieveId("D_XT_YHXX");
			System.out.println(str);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

使用

String xh = Builder.retrieveId(YhxxBean.TABLENAME);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值