解决数据库非主键自增长的方法

原创 2015年11月20日 09:05:04
1:编写获得下一个编号的方法
	//获取编号的next值
	private static String nextId = "";
	public static String getNextId(String curId, String pattern) {

		String curNum = curId.substring(curId.lastIndexOf("_") + 1);
		Integer nextNum = Integer.parseInt(curNum) + 1;
		DecimalFormat df = new DecimalFormat(pattern);
		nextId = curId.substring(0, curId.lastIndexOf("_") + 1)
				+ df.format(nextNum);
		return nextId;
	}:
2:操作数据库
<span style="white-space:pre"><span style="white-space:pre">	</span>//执行保存或更新动作	</span>
<span style="white-space:pre">	</span>public void saveOrUpdate(Product product) {
<span style="white-space:pre">		</span>String sql = "";
<span style="white-space:pre">		</span>try {
<span style="white-space:pre">			</span>DataSource ds = DataSourceUtil.getDataSource();
<span style="white-space:pre">			</span>conn = ds.getConnection();
<span style="white-space:pre">			</span>sql = "SELECT productId FROM `product` ORDER BY productId DESC LIMIT 1";<span style="white-space:pre">			</span>
<span style="white-space:pre">			</span>ps = conn.prepareStatement(sql);
<span style="white-space:pre">			</span>rs = ps.executeQuery();
<span style="white-space:pre">			</span>String newUserId = "";
<span style="white-space:pre">			</span>if(rs.next()){
<span style="white-space:pre">				</span>newUserId = StringUtil.getNextId(rs.getString("productId"),"000");
<span style="white-space:pre">			</span>}else{
<span style="white-space:pre">				</span>newUserId = "product_001";
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>sql="insert into product values(null, ?, ?, ?, ?)";
<span style="white-space:pre">			</span>ps = conn.prepareStatement(sql);
<span style="white-space:pre">			</span>ps.setString(1, newUserId);
<span style="white-space:pre">			</span>ps.setString(2, product.getName());
<span style="white-space:pre">			</span>ps.setString(3, product.getStatus());
<span style="white-space:pre">			</span>ps.setString(4, product.getRemarks());
<span style="white-space:pre">			</span>ps.executeUpdate();
<span style="white-space:pre">		</span>} catch (Exception e) {
<span style="white-space:pre">			</span>e.printStackTrace();
<span style="white-space:pre">		</span>} finally {
<span style="white-space:pre">			</span>try {
<span style="white-space:pre">			</span>ps.close();
<span style="white-space:pre">			</span>conn.close();
<span style="white-space:pre">			</span>} catch (SQLException e) {
<span style="white-space:pre">			</span>e.printStackTrace();
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle主键自动增长方法

  • 2013-04-13 17:01
  • 12KB
  • 下载

数据库主键生成策略 方法集合

主键生成方法主要有以下几种:   1、采用mysql自增长主键策略      优点 :简单,不需要程序特别处理      缺点:这种方法对以后如果项目移植到其它数据库上改动会比较大,...

数据库中主键自动增长

1、把主键定义为自动增长标识符类型在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:create table customers(id int aut...

sql语句查询数据库中的表名/列名/主键/自动增长值

----查询数据库中用户创建的表 ----jsj01 为数据库名 select name tablename from jsj01..sysobjects where type='U' and n...

powerdesigner创建oracle 数据库表,设置表主键列为自动增长。 .

1 在表视图的列上创建。 双击表视图,打开table properties ———>columens , 双击要设置的列(显示列的序号的那个按钮,单击后,会显示横向的黑色箭头)。 打开colum...

DB2中自动增长主键的方法

1 )当想将表中一列修改为自动增长时,可用下面命令: Alter table alter column set generated always as identity (start wit...

DB2修改表中一列为自动增长主键的方法

1 )当想将表中一列修改为自动增长时,可用下面命令: Alter table alter column set generated always as identity (start with ...

ssm和ssh框架中,oracle数据库,表主键自增如何解决

ssh和ssm框架对于oracle数据主键自主如何处理

MySQL数据库order by 主键(索引) 查询慢解决方案

今天遇到个奇葩的问题,应用主键排序速度奇慢无比,经过不懈的努力,终于找到了问题的原因。 一、错误现象 template表: 索引:索引名随便起的,O(∩_∩)O哈哈~ 查询语句: select...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)