screatetable.java
来自「主要对各种数据库性能进行测试」· Java 代码 · 共 251 行
JAVA
251 行
package sqlite;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SCreateTable extends ServerFactory {
int newval = 0;
static int ist,thenum = 0;
static long max=0,min=0,total=0;
long avg=0;
String table = "users",showprint,dbtype = "";
ExecSql exec = new ExecSql();
WriteFile file = new WriteFile();
Configure config = new Configure();
public SCreateTable() {
String dbtype = config.getProperty("dbtype");
showprint = config.getProperty("showprint");
this.dbtype = dbtype;
exec = new ExecSql();
this.init();
}
@Override
public int Exec() {
ResultSet rs = null;
thenum ++;
newval = thenum;
String sql ;
int count = 0;
try {
/*
* mysql,oracle 会自动在主键上创建索引
*/
if(dbtype.equalsIgnoreCase("sqlite")){
sql = "select count(*) from sqlite_master where type='table' and name='"+table+"'";
System.out.println(sql);
rs = exec.select(conn, sql);
if(rs.next()){
count = rs.getInt(1);
}
System.out.println(rs);
exec.closeResult(rs);
System.out.println(count);
if(count == 0){
sql = "create table "+table+" (userid integer primary key ,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30))";
exec.exec(conn, sql);
System.out.println(sql+"建表成功!");
file.aLine(sql+",建表成功!");
sql = "create index idx_"+table+" on "+table+"(userid)";
exec.exec(conn, sql);
System.out.println(sql+"建索引成功!");
file.aLine(sql+",建索引成功!");
}//
}else if(dbtype.equalsIgnoreCase("hsql")){
sql = "create table "+table+" (userid int generated by default as identity(start with 1,increment by 1) not null primary key,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30))";
System.out.println(sql);
int result = exec.exec(conn, sql);
if(result==-1){
System.out.println("建表失败,该表已经存在!");
file.aLine(sql+",建表失败,该表已经存在!");
}else{
System.out.println("建表成功!");
file.aLine(sql+",建表成功!");
sql = "create index idx_"+table+" on "+table+"(userid)";
System.out.println(sql);
exec.exec(conn, sql);
System.out.println("建索引成功!");
file.aLine(sql+",建索引成功!");
}
}else if(dbtype.equalsIgnoreCase("oracle")){
sql = "select count(1) from user_tables where lower(table_name) = '" + table + "'";
rs = exec.select(conn, sql);
if(rs.next()){
count = rs.getInt(1);
}
exec.closeResult(rs);
//System.out.println(count);
if(count < 1){
sql = "create table "+table+" (userid int not null primary key,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30))";
System.out.println(sql);
int result = exec.exec(conn, sql);
if (result == 1){
System.out.println("建表成功!");
file.aLine(sql+",建表成功!");
}else{
System.out.println("建表失败,该表已经存在!");
file.aLine(sql+",建表失败,该表已经存在!");
return 0;
}
count = 0;
sql = "select count(1) from user_objects a where a.object_type = 'SEQUENCE' and a.object_name = 'SEQ_"+table.toUpperCase()+"'";
rs = exec.select(conn, sql);
if(rs.next()){
count = rs.getInt(1);
}
exec.closeResult(rs);
//System.out.println(count);
if(count==0 ){
sql = "create sequence seq_"+table;
System.out.println(sql);
try{
result = exec.exec(conn, sql);
System.out.println("建序列成功!");
file.aLine(sql+",建序列成功!");
}catch( Exception e){
}
}
sql = "create or replace trigger trg_" + table +
" before insert on users for each row " +
" declare " +
" begin " +
" select seq_users.nextval into :new.userid from dual; " +
" end;";
System.out.println(sql);
result = exec.exec(conn, sql);
System.out.println("建触发器成功!"+result);
file.aLine(sql+",建触发器成功!");
}
}else if(dbtype.equalsIgnoreCase("mysql")){
sql = "create table if not exists "+table+" (userid integer auto_increment,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30),primary key(userid))";
System.out.println(sql);
int result = exec.exec(conn, sql);
if (result == 1){
System.out.println("建表成功!");
file.aLine(sql+",建表成功!");
}else{
System.out.println("建表失败,该表已经存在!");
file.aLine(sql+",建表失败,该表已经存在!");
}
}else if(dbtype.equalsIgnoreCase("enterprisedb")){
sql = "select count(1) from user_tables where table_name = '" + table.toUpperCase() + "'";
rs = exec.select(conn, sql);
if(rs.next()){
count = rs.getInt(1);
}
exec.closeResult(rs);
//System.out.println(count);
if(count < 1){
sql = "create table "+table+" (userid int not null primary key,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30))";
System.out.println(sql);
int result = exec.exec(conn, sql);
if (result == 1){
System.out.println("建表成功!");
file.aLine(sql+",建表成功!");
}else{
System.out.println("建表失败,该表已经存在!");
file.aLine(sql+",建表失败,该表已经存在!");
return 0;
}
count = 0;
sql = "select count(1) from user_objects a where a.object_type = 'SEQUENCE' and a.object_name = 'SEQ_"+table.toUpperCase()+"'";
rs = exec.select(conn, sql);
if(rs.next()){
count = rs.getInt(1);
}
exec.closeResult(rs);
System.out.println(count);
if(count==0 ){
sql = "create sequence seq_"+table;
System.out.println(sql);
try{
result = exec.exec(conn, sql);
System.out.println("建序列成功!");
file.aLine(sql+",建序列成功!");
}catch( Exception e){
}
}
sql = "create or replace trigger trg_" + table +
" before insert on users for each row " +
" declare " +
" begin " +
" select seq_users.nextval into :new.userid from dual; " +
" end;";
System.out.println(sql);
result = exec.exec(conn, sql);
System.out.println("建触发器成功!"+result);
file.aLine(sql+",建触发器成功!");
}
}else if(dbtype.equalsIgnoreCase("kingbase")){
sql = "create table "+table+" (userid int identity,column2 varchar(30),column3 varchar(30),column4 varchar(30),column5 varchar(30),column6 varchar(30),column7 varchar(30),column8 varchar(30),column9 varchar(30),column10 varchar(30),constraint pk_users primary key(userid))";
System.out.println(sql);
int result = exec.exec(conn, sql);
if(result==-1){
System.out.println("建表失败,该表已经存在!");
file.aLine(sql+",建表失败,该表已经存在!");
}else{
System.out.println("建表成功!");
file.aLine(sql+",建表成功!");
sql = "create index idx_"+table+" on "+table+"(userid)";
System.out.println(sql);
exec.exec(conn, sql);
System.out.println("建索引成功!");
file.aLine(sql+",建索引成功!");
} }
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("SCreateTable.class");
}finally{
freeConnection(this.dbtype);
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return 1;
}
// TODO Auto-generated method stub
@Override
public int init() {
// TODO Auto-generated method stub
this.dbtype = config.getProperty("dbtype");
if(!initConnection(this.dbtype)) {
System.out.println("create database connection failed!");
return -1;
}
return 0;
}
public static void main(String[] args) {
SCreateTable as = new SCreateTable();
as.Exec();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?