ServerConfigure sc = ServerConfigure.getServerConfigerInstance();//获取数据库连接
Connection conn = null;
try {
conn = sc.getDataSource().getConnection();//获取数据源
//生成表名
Calendar cal = Calendar.getInstance();
int year = cal.get(cal.YEAR);
int month = cal.get(cal.MONTH);
int day = cal.get(cal.DAY_OF_MONTH)+1;
cal.set(year, month, day);
Date d = cal.getTime();
java.text.SimpleDateFormat sd = new SimpleDateFormat("yyMMdd");
String tablename = "TB_CURRENTDATA_" + sd.format(d);
String indexDate = "index_HD_DATE_" + sd.format(d);
String indexTime = "index_HD_TIME_" + sd.format(d);
log.info(tablename);
//代码里创建数据库表和索引结尾不能加分号
String sql1 = "select count(*) from user_tables where table_name = '"+tablename+"'";//判断表是否存在
String sql2 = "CREATE TABLE "+tablename +
" (HD_ID VARCHAR2(100 BYTE) DEFAULT '' NOT NULL ," +
"HD_STATIONCODE NVARCHAR2(20) NOT NULL ," +
"HD_DATE NUMBER(11) NOT NULL ," +
"HD_OWRATE VARCHAR2(50 BYTE) NULL )";
String sql3 = " CREATE INDEX "+indexDate +
" ON "+tablename+" (HD_DATE DESC) ";
String sql4 = " CREATE INDEX "+indexTime +
" ON "+tablename+" (HD_TIME DESC) ";
log.info("sql2=="+sql2);
log.info("sql3=="+sql3);
PreparedStatement ps1 = conn.prepareStatement(sql1);
PreparedStatement ps2 = conn.prepareStatement(sql2);
PreparedStatement ps3 = conn.prepareStatement(sql3);
PreparedStatement ps4 = conn.prepareStatement(sql4);
ResultSet rs = ps1.executeQuery();//查询生成的 ResultSet 对象
while (rs.next()) {
if (rs.getInt(1)==0) {//判断表是否存在
ps2.execute();//执行sql2语句
ps3.execute();//执行sql3语句
ps4.execute();//执行sql4语句
log.info("表"+tablename+"创建成功");
}else {
log.info("表"+tablename+"已存在");
}
}
rs.close();
ps1.close();
ps2.close();
ps3.close();
ps4.close();
conn.close();
} catch (SQLException e) {
log.info("GPS建表出错");
log.error(e);
try {
if(conn!=null&&!conn.isClosed())
conn.close();
} catch (SQLException e1) {
log.error(e1);
}
}
在代码里每天创建表
最新推荐文章于 2024-01-23 16:07:24 发布