java实现数据库主键生成示例
package test;
import java.util.concurrent.atomic.AtomicInteger;
public class IDGenerate {
private static final AtomicInteger integer = new AtomicInteger(0);
public static long getId() {
long time = System.currentTimeMillis();
StringBuilder str = new StringBuilder(20);
str.append(time);
int intValue = integer.getAndIncrement();
if (integer.get() >= 10000) {
integer.set(0);
}
if (intValue < 10) {
str.append("000");
} else if (intValue < 100) {
str.append("00");
} else if (intValue < 1000) {
str.append("0");
}
str.append(intValue);
return Long.parseLong(str.toString());
}
public static void main(String[] args) {
for (int i = 0; i < 100003; i++) {
new Test().start();
}
}
private static class Test extends Thread {
@Override
public void run() {
System.out.println(IDGenerate.getId());
}
}
}
相关推荐
-
java常用工具类之数据库连接类(可以连接多种数据库)
依赖包下载:http://xiazai.jb51.net/201407/tools/java-db-dependency(jb51.net).rar 数据库连接类源码: package com.itjh.javaUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.R
-
java连接mysql数据库学习示例
复制代码 代码如下: package sns.team6.util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; /** * 链接数据库的工具类 * * @author 徐锐 * */public class DBHelper { // mysq
-
Java利用剪贴板实现交换程序间数据的方法
本文实例讲述了Java利用剪贴板交换程序间数据的实现方法.在图形化系统中,系统剪贴板非常重要,很难想象一个没有剪贴板功能的图形化操作系统使用起来会是怎样.本例就实现了Java 程序与所在系统的剪贴板的数据交流,当单击"Paste"按钮后,Java 程序从系统剪贴板中取得数据并显示在一个JTextArea 组件中:当单击"Copy"按钮后,文本区中的选中文本将被传送到系统剪贴板上. 首先必须得到系统剪贴板的实例引用,java.awt.Toolkit 类中提供了getS
-
java数据库连接池和数据库连接示例
复制代码 代码如下: import java.sql.Connection;import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * 工具类 提供数据库连接池 和数据库连接 * * @author seawind * */public class JDBCUtils { private static DataSource
-
java操作oracle数据库示例
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: 复制代码 代码如下: /** * 一个非
-
android中WebView和javascript实现数据交互实例
在看懂这篇文章之前首先要有javascript基础. (1) js调用android的方法: 复制代码 代码如下: WebView wView: wView. addJavascriptInterface (Object obj, String interfaceName); 是实例化一个对象,在html的js中调用,第二个参数是实例化对象的别名,如果要使用这个obj,则在js中使用的名字 就是interfaceName. 复制代码 代码如下: public class jsWebDemo ex
-
java如何交换这两个变量的值方法介绍
1.借助中间量交换 int x = 10; int y = 20; int temp = x; x = y; y = temp; 此种方法可以将中间量看成空杯,即把temp看成是空杯, 把x看成是装有白酒的杯子,把y看成是装有红酒的杯子 int temp = x; 把白酒倒到空杯中,此时temp装有白酒,x变成空杯 x = y; 把y中的红酒倒到x空杯中,此时x装有红酒,y变成空杯 y = temp; 把白酒倒到y空杯中,此时x装有红酒,y装有白酒,实现x和y的互换 2.数值相加减交换 int
-
java连接数据库增、删、改、查工具类
java连接数据库增.删.改.查工具类 数据库操作工具类,因为各厂家数据库的分页条件不同,目前支持Mysql.Oracle.Postgresql的分页查询在Postgresql环境测试过了,其他数据库未测试.sql语句需要使用预编译形式的 复制代码 代码如下: package db; import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.R
-
java生成json数据示例
JsonTools.java 复制代码 代码如下: package com.lihua.json.tools; import net.sf.json.JSONObject; public class JsonTools { public JsonTools() { } /** * @param key * 表示json字符串的头信息 * @param value * 是对解析的集合的类型 * @return */ //将数据转
-
java实现数据库主键生成示例
复制代码 代码如下: package test;import java.util.concurrent.atomic.AtomicInteger; public class IDGenerate {private static final AtomicInteger integer = new AtomicInteger(0);public static long getId() { long time = System.currentTimeMillis(); StringBuilder
-
GBase 8s数据库主键约束、唯一约束和唯一索引的区别解析
主键约束(PRIMARY KEY) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键,一个表上仅只能有一个主键: 不建议更新主键: 主键列上没有任何两行具有相同值(即重复值),且不允许空(NULL): 主健可作外健,唯一索引不可: 唯一性约束(UNIQUE) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束: 只要唯一就可以更新: 表中任意两行在指定列上都不允许有相同的值,但允许空(NULL): 唯一索引(UNIQUE I
-
小议sqlserver数据库主键选取策略
因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除的时候不会出现张冠李戴的错误.当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了.主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致.所以数据库在设计时,主键起到了很重要的作用. 常见的数据库主键选取方式有: 自动增长字段 手动增长字段 UniqueIdentifier "COMB(Combine)"类型 一.自动增长型字段 很多数据库设计者喜欢使用自动增长型字段,因为它使用简单.
-
Navicat设置Oracle数据库主键自增的方法步骤
目录 一. 创建如下表 二.创建序列 三.创建触发器 总结 一. 创建如下表 Oracle数据库不同于Mysql.Sql Server数据库,Oracle数据库主键自增不能在建表时直接设置,而是需要通过序列和触发器进行设置! 二.创建序列 create sequence SEQ_DEVICEDATAINFO start with 1 increment by 1 maxvalue 99999999 nocycle cache 10; 上述语句中: create sequence SEQ_DEVI
-
sqlserver数据库主键的生成方式小结(sqlserver,mysql)
主键的生成方式主要有三种: 一. 数据库自动生成 二. GUID 三. 开发创建 严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行讲解. 第一种方式,主要将其定位在自增长的标识种子:可以设置起始数值,及增长步长.其优点在于使用时完全将并发任务交于数据库引擎管理,你不用担心存在多用户使用的时候会产生两个相同的ID的情况.其缺点也在于此,多数的数据库不提供直接获取标识ID的方式,对于开发人员来说产生ID的方式是透明的,开发人员几乎无法干预此项.对于数据的迁移也不是很方便. 由于存在上面的利
-
Java实现时间日期格式转换示例
Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateForma
-
Mybatis-Plus主键生成策略的方法
目录 前言 一.官网 二.主键注解@TableId说明 1.源码 2.作用 3.使用 三.主键生成策略-IdType枚举说明 1.源码 2.说明 3.全局设置 三.ID生成器介绍 1.IdentifierGenerator 2.IKeyGenerator 四.自定义主键生成器 总结 前言 很多人在使用Mybatis-Plus的时候可能会疑惑,自己明明没有配置主键的生成策略,但是执行新增操作时却自动生成了主键,而且还特别长.这是由于Mybatis-Plus默认就会采用雪花算法填充主键字段. 今天就
-
tk.mybatis实现uuid主键生成的示例代码
引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency> 1.创建一个GenId的实现类 package com.xiaobu.base.entity; import tk.mybatis.ma
-
Java探索之Hibernate主键生成策略详细介绍
1.increment 由Hibernate从数据库中去除主键的最大值(每个session只取一次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库. <id name="id" column="id"> <generator class="increment" /> </id> Hibernate调用org.hibernate.id.IncrementGenerator类
-
Java 静态数据初始化的示例代码
无论创建多少个对象,静态数据都只占用一份存储区域.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值:如果它是一个对象引用,那么它的默认初始值就是null class Bowl { public Bowl(int marker) { System.out.println("Bowl(" + marker + ")"); } void f1(int marker) { Sy
随机推荐
- Webform 内置对象 Session对象、Application全局对象,ViewState详细介绍
- Python编程中装饰器的使用示例解析
- Linux 按时间批量删除文件命令(删除N天前文件)
- Linux有限状态机FSM的理解与实现
- 基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
- php利用imagemagick实现复古老照片效果实例
- 基于wxpython开发的简单gui计算器实例
- Python如何判断数独是否合法
- Python赋值语句后逗号的作用分析
- C# httpwebrequest访问HTTPS错误处理方法
- Lua cjson模块编译笔记及错误解决方法
- Linux系统下nginx日志每天定时切割的脚本写法
- 判断触发器正在处理的是插入,删除还是更新触发
- 用cookies实现的可记忆的样式切换效果代码下载
- 浅析C#中文件路径的操作
- Android获取当前已连接的wifi信号强度的方法
- javascript每日必学之多态
- c#中实现图片灰度化技术详解
- 详解最新vue-cli 2.9.1的webpack存在问题
- Vue下滚动到页面底部无限加载数据的示例代码