自定义表中自增列
来源:互联网 发布:网络直播评论现象 编辑:程序博客网 时间:2024/06/06 00:17
数据库表
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)asbegin transactionupdate d_xt_bh set bh=bh+@interval where bm=@tablenameselect bh from d_xt_bh where bm=@tablenamecommit
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);