查询数据库是否有某表的存在,主要用的就是Connection对象对元数据的操作,代码很简单,贴出来大家参考

/**

* 查询数据库是否有某表

* @param cnn

* @param tableName

* @return

* @throws Exception

*/

@SuppressWarnings("unchecked")

public boolean getAllTableName(String tableName) throws Exception {

Connection conn = jdbcTemplate.getDataSource().getConnection();

ResultSet tabs = null;

try {

DatabaseMetaData dbMetaData = conn.getMetaData();

String[] types = { "TABLE" };

tabs = dbMetaData.getTables(null, null, tableName, types);

if (tabs.next()) {

return true;

}

} catch (Exception e) {

e.printStackTrace();

}finally{

tabs.close();

conn.close();

}

return false;

}

然后判断是有某表,如果没有,调用创建

/**

* 根据表名称创建一张表

* @param tableName

*/

public int createTable(String tableName){

StringBuffer sb = new StringBuffer("");

sb.append("CREATE TABLE `" + tableName + "` (");

sb.append("`id` int(11) NOT NULL AUTO_INCREMENT ,");

sb.append("`alertId` int(11) NULL DEFAULT NULL ,");

sb.append("`alertTime` int(11) NULL DEFAULT NULL ,");

sb.append("`alertLevel` int(11) NULL DEFAULT NULL ,");

sb.append("`deviceMark` int(11) NULL DEFAULT NULL ,");

sb.append("`carNo` int(11) NULL DEFAULT NULL ,");

sb.append("`updateTime` varchar(255) DEFAULT NULL ,");

sb.append("PRIMARY KEY (`id`)");

sb.append(") CHARACTER SET=utf8 COLLATE=utf8_general_ci;");

try {

jdbcTemplate.update(sb.toString());

return 1;

} catch (Exception e) {

e.printStackTrace();

}

return 0;

}

这两个方法可以公用,至于是按月还是按天还是按周,取决于你对表名称的生成

/**

* 保存

*/

@Override

public int saveAlertMessLog(AlertMessLog alertMessLog) {

SimpleDateFormat format = new SimpleDateFormat("yyyy_MM");

String tableName = "nm_alertmesslog_" + format.format(new Date());

try {

boolean isHave = getAllTableName(tableName);

if(isHave){

return saveObject(alertMessLog,tableName);

}else{

if(createTable(tableName) == 1){

return saveObject(alertMessLog,tableName);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return 0;

}

我的格式化方法决定了是按照月来进行生成,如果有直接保存,如果没有,先生成再保存!

最后:

由于近期大量小网站在未经同意情况下使用文章,现将我的博客地址公布如下,请您到ITEYE网站看原创,谢谢!

mysql判断视图是否存在_使用JDBC查询是否存在某表或视图,按月动态生成表相关推荐

  1. java jdbc 表存在_使用JDBC查询是否存在某表或视图,按月动态生成表

    查询数据库是否有某表的存在,主要用的就是Connection对象对元数据的操作,代码很简单,贴出来大家参考. /** * 查询数据库是否有某表 * @param cnn * @param tableN ...

  2. mysql判断是否建立索引_判断mysql中列是否要添加索引的标准

    最近再看mysql技术内部+innoDb存储引擎一书,书中第五章-索引与算法中讲到 查看表的索引信息中的一些参数含义,特作记录 show index from table_name ##  查看该表的 ...

  3. 在mysql中 创建视图需要使用_语句_SQL如何通过CREATE VIEW 语句创建视图

    一.什么是视图 视图是基于SELECT 语句的结果集的可视化的表. 在 SQL 中,一个视图是基于某个 SELECT 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的域就是来自一 ...

  4. jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧

    Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后判断等. java.uti ...

  5. jdbc mysql数据库增删查改_通过JDBC对Mysql数据库进行简单的增删改查

    Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.J ...

  6. mysql 判断日志时间早_MySQL5.7慢查询日志时间与系统时间差8小时原因详解

    UTC大家都知道是世界统一时间,而我现在的系统时间是东八区,比UTC早了8个小时,这就对上了.查看官方文档看一下官网的解释. log_timestamps Property Value Command ...

  7. mysql根据经纬度搜周边_根据经纬度查询最近距离,mysql查询经纬度附近范围

    public class Test{ private static List ilist = new ArrayList(); public static void main(String[] arg ...

  8. 怎么判断日出时间早晚_日出日落时间查询

    经度:135.11 纬度:49.16 1982年08月份 日出日落时刻表 日期日出日中日落昼长天亮天黑 1982年08月01日 周日03:31:1111:05:5218:40:3215:09:2102 ...

  9. mysql 两条sql合并_两条查询SQL的语句的数据合并到一起

    大神们好,我目前遇到这样一个问题. 我现在有一个SQL语句A,SELECT TABLE_NAME table_name, COLUMN_NAME id, DATA_TYPE str, IS_NULLA ...

最新文章

  1. 奇葩错误 WIFI搜不到、无线网卡连接不上
  2. 索引超出了数组界限_还在用优先队列?来试试索引优先队列吧(优先队列amp;索引优先队列)...
  3. R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
  4. 国服被ban咋看_LOL国服十大神人霸哥
  5. 基于Kubernetes的持续部署方案
  6. kali2020.3 vm版本内核是多少_Zircon Fuchsia 内核分析 启动(内核初始化)
  7. java mysql分层_java-数据库连接,分层实现增删改查测试
  8. 十 全局结果页面的配置
  9. oms中显示服务器错误,重新配置Agent以应对 OMS服务器的变化
  10. 关联规则挖掘算法之Apriori算法
  11. 快乐课堂--寓教于乐、老师必备的课堂教学软件
  12. 让调查问卷数据告诉您更多意义的EnableQ在线问卷调查引擎V5.0发布
  13. JAVA中如何解决超卖,Redis解决库存超卖问题实例讲解
  14. linux条件变量cond,Linux C 条件变量cond的使用记录
  15. 蓝桥杯练习 分解质因数
  16. 传感器--电阻应变片传感器
  17. 在JitPack上发布Android库
  18. Fiddler抓取数据并分析(完整的配置教程) 1
  19. Android——AndroidStudio主题样式、字体设置
  20. 竞争情报分析工具Alexa

热门文章

  1. Java ConcurrentModificationException异常原因和解决方法
  2. 多行字符串,带有多余的空格(保留缩进)
  3. Vim清除最后一个搜索突出显示
  4. 如何签出远程Git分支?
  5. Objective-C中的复制忍者卡卡西---NSProxy
  6. Mysql按周,按月,按日,按小时分组统计数据
  7. 【算法与数据结构】B-树学习笔记
  8. IIS 500错误报service unavailable解决方案之一
  9. 让PPT声音播放不再“哑口无言”
  10. Catalyst 4000 6000配置经验谈(一)