数据库表
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);