jdbc mysql动态建表

通过检查来决定是否建表

如果表尚未被建立,就执行ptmt语句更新,在数据库中创建这个表,

如果这个表已经存在,就不执行建表操作了;

package SQLCon;
import java.sql.*;
public class CreateTables {
	public static boolean HaveTable(String TableName) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");
        String user = "root";
        String pwd = "123456";
        String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=false";
        Connection conn = DriverManager.getConnection(url, user, pwd);
        ResultSet rs = conn.getMetaData().getTables(null, null, TableName, null);
        if(rs.next()) {
        	rs.close();
        	conn.close();
        	return true;
        }else
        {
        	rs.close();
        	conn.close();
        	return false;
        }
	}
	public static void main(String args[]) throws SQLException, ClassNotFoundException {
		Class.forName("com.mysql.jdbc.Driver");
        String user = "root";
        String pwd = "123456";
        String url = "jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf-8&useSSL=false";
        Connection conn = DriverManager.getConnection(url, user, pwd);
        if(HaveTable("MyTables")!=true){
			String sql = "CREATE TABLE ACT_SHIP_USER "+
					"(ID_ VARCHAR(64) not NULL, " +
					"ORG_ VARCHAR(255), " +
					"JOB_ VARCHAR(255), "+
					"PRIMARY KEY (ID_))";
			PreparedStatement ptmt = conn.prepareStatement(sql);
			ptmt.executeUpdate(sql);
			ptmt.close();
		}
        else
        {
        	System.out.println("table is existed!");
        }
	}
}

  

原文地址:https://www.cnblogs.com/masterchd/p/9158936.html

时间: 2024-10-08 09:24:04

jdbc mysql动态建表的相关文章

Spring JdbcTemplate框架(2)——动态建表

本篇博客使用Spring JdbcTemplate实现动态建表.前面介绍了,它封装了数据库的基本操作,让我们使用起来更加灵活,下面来实战. 1.准备工作 引入jar包 2.applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi

Mybatis动态建表

在网上查了很多,都说Mybatis不支持动态建表,心凉了一节.还好找到这么一篇,找到了希望:http://www.zzzyk.com/show/ec5660d9cf1071b3.htm 经过在mysql环境下验证,确实可用,不知道其他数据库是否支持,如下: Mapper.xml <update id="createNewTable"> create table `${realTableName}`( `id` int(11) NOT NULL AUTO_INCREMENT,

动态建表的学习总结

在没有学习js之前,当遇到需要建表时,往往都是比较麻烦的,而且不容易根据新的需求来更改.自从学了js之后,再也不用担心这个问题辣.使用js动态建表,在一个页面中出现多个表格时,还可以通过其函数多次调用来快速实现,简直不要太愉快~ 献上代码,有不足的地方还请指正. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tit

反射动态建表

SQLiteHelper定义一个接口SQLiteDataTable,里边重写onCreate和onUpgrade方法.在SQLiteDaoBase基类去实现这个SQLiteDataTable接口方法. 然后UserDao继承了SQLiteDaoBase这个基类,实现抽象类里的oncreate和onUpgrade两个方法,在oncreate方法里创建user表,写sql语句. 在SQLiteHelper里的onCreate方法里通过反射获得任意一个实现了SQLiteDataTable接口的实例,再

mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI

[intrinsic column flags] (基本字段类型标识) - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增

mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释

mysql workbench 建表时 - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增 - BIN: binary (i

如何在数据库动态建表

动态建表首先需要了解Statement类 Statement 对象用 Connection 的方法createStatement 创建,例如 //创建连接对象Connection connection = DBUtil.getConnection();//创建Statement对象Statement statement=connection.createStatement(); 创建完之后通过执行以sql语句为参数的Statement的方法,来执行sql语句完成对数据库的操作. Statemen

Mysql的建表规范与注意事项

一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议

在线ER模型设计:可视化MySQL数据库建表及操作

概述 ER模型使用可视化了实体存储的信息,以及直观的呈现了实体与实体的关系,在我们实际的应用系统开发过程中新建ER模型可以更好的理解业务模型,为以后的开发维护工作起到归纳总结的作用. [Freedgo Desgin]()是一款轻松.快速.协作地创建各种专业图表工具.让您在线创建流程图.系统部署图.软件架构图.UML.BPMN.ER模型,DFD,组织图,软件流程图,图表.免费试用.使用Freedgo Design创建数据库ER模型目前支持MySQL及基本的SQL语句建表.后期会进行功能拓展以支持S