社区
Java SE
帖子详情
mysql中如何动态创建表?
wujiezhejiang
2008-06-15 10:44:00
使用创建表的mysql语句,然后执行就可。
比如:在程序执行过程中获取到表名、表字段名和字段属性,根据这些生成
creat table 表名(字段名1 属性1,字段名2 属性2。。。)
然后下面的程序中执行该语名,就可创建该表。
...全文
747
17
打赏
收藏
mysql中如何动态创建表?
使用创建表的mysql语句,然后执行就可。 比如:在程序执行过程中获取到表名、表字段名和字段属性,根据这些生成 creat table 表名(字段名1 属性1,字段名2 属性2。。。) 然后下面的程序中执行该语名,就可创建该表。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yxb0317
2008-06-17
打赏
举报
回复
学习
wolfgang_l
2008-06-17
打赏
举报
回复
感谢,学习一下。
wujiezhejiang
2008-06-17
打赏
举报
回复
谢了.学到很多
树成
2008-06-16
打赏
举报
回复
stmt.executeUpdate(sql);
dll语句不能用这个方法执行,这个方法是执行更新语句的,返回影响的行数。
生成表要用stmt.execute(sql); 方法来执行,返回一个boolen值,boolen代表语句是否执行成功。
zhj92lxs
2008-06-16
打赏
举报
回复
本人名字就是害虫,害虫当然不会干好事了。。。。。。。。
hye4
2008-06-16
打赏
举报
回复
这个改一下:
st = con.prepareStatement(sql);
result= st.execute();
hye4
2008-06-16
打赏
举报
回复
这是我在sql server 执行的建表建触发器语句:
/**
* 创建中间表或者触发器
*
* @param sql String
* @return boolean 返回语句执行结果,true 成功,false 失败
*/
private boolean createTableOrTrigger(String sql)
{
Connection con = null;
PreparedStatement st = null;
boolean result = false;
try
{
con = dbh.getConnection();
st = con.prepareStatement(sql);
st.execute();
result = true;
dbh.closeConnections(null, st, con);
}
catch (SQLException ex)
{
Log.error("Unable to create :" +
sql + " ,ErrorCode :" + ex.getErrorCode() +
",Exception :" +
ex.getLocalizedMessage());
dbh.closeConnections(null, st, con);
}
return result;
}
建立中间表的语句:
/**建立中间表*/
public static final String
createMiddleTableSQL =
"CREATE TABLE [dbo].[AlarmsMiddleTbl] ( "
+ " [id] [int] NOT NULL , "
+ " [DeviceID] [smallint] NULL , "
+ " [Aid] [char] (10) COLLATE Chinese_PRC_BIN NULL , "
+ " [BeginTime] [datetime] NULL , "
+ " [EndTime] [datetime] NULL , "
+ " [Severity] [char] (2) COLLATE Chinese_PRC_BIN NULL , "
+ " [CondType] [char] (25) COLLATE Chinese_PRC_BIN NULL , "
+ " [DetailID] [smallint] NULL , "
+
" [AckNotes] [char] (150) COLLATE Chinese_PRC_BIN NULL , "
+
" [Description] [char] (255) COLLATE Chinese_PRC_BIN NULL , "
+
" [Systemtimes] [char] (30) COLLATE Chinese_PRC_BIN NULL "
+ ") ON [PRIMARY] ";
因为mysql的语法跟sql server不太一样,自己改一下。
zhj92lxs
2008-06-15
打赏
举报
回复
真是抱歉啊,本人是菜鸟,无能为力啊!!!!!!!!!1
zhj92lxs
2008-06-15
打赏
举报
回复
呵呵,我误导你了
wujiezhejiang
2008-06-15
打赏
举报
回复
那里没有错,错在创建表是有误,一个stmt也能执行多次,你不要误到别人在自己没有懂的情况下
zhj92lxs
2008-06-15
打赏
举报
回复
stmt.executeUpdate(sql); 执行这句之前先要在stmt = con.createStatement(); 一个stmt不能执行多次
wujiezhejiang
2008-06-15
打赏
举报
回复
在后面加了空格还是有错误的
我的原程序如下:
public class CreateTabel {
private static String tabelname;
public CreateTabel(String tabelname){
Connection con = null;
ResultSet rs = null;
try{
String url = "jdbc:mysql://127.0.0.1:3306/test";
String username = "root";
String password = "wu123456";
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url,username,password);
Statement stmt = con.createStatement();
String sql = "drop table "+tabelname;
try{
stmt.executeUpdate(sql);
}catch(Exception e1){
System.out.println("表不存在!");
}
sql = "create table "+ tabelname+
"(id int(11) primary key,"+"name varchar(12) not null)";
stmt.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(con!=null) con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new CreateTabel(tabelname);
}
}
youngsun1983
2008-06-15
打赏
举报
回复
[Quote=引用 3 楼 zhj92lxs 的回复:]
"create table"+ tablename+ 在table后面加一个空格,否则会连载一起,当然不会成功
[/Quote]
对,后面自然也要个空格
zhj92lxs
2008-06-15
打赏
举报
回复
"create table"+ tablename+ 在table后面加一个空格,否则会连载一起,当然不会成功
wujiezhejiang
2008-06-15
打赏
举报
回复
String tablename;//tablename是动态创建的表
String sql = "create table"+ tablename+
"(id int(11) primary key,"+"name varchar(12) not null)";
我这样也不行呀,连接有错误,
请你给出语法.谢谢
树成
2008-06-15
打赏
举报
回复
拼接好create table语句,直接用jdbc执行就可以了。
C#操作
Mysql
创建数据库,数据表,增、删、改数据
vs2008C#操作
Mysql
创建数据库,数据表,增、删、改数据实例。
Python 使用
mysql
数据库
动态
创建表
-表名为变量
Python 使用
mysql
数据库
动态
创建表
-表名为变量
MySql
存储过程
动态
创建表
并插入数据
MySql
存储过程
动态
创建表
并插入数据 最近做的一个项目,数据库用的是
MySql
,对于
MySql
不是很熟练,只是会简单的应用,毕竟简单的sql语句还是相通的,但是随着项目的深入复杂的sql语句开始慢慢多起来,其
中
一个小难点就是要根据当天的日期
动态
创建表
,并且向其
中
插入数据。 具体逻辑可以理解为,先去数据库查询有没有当天的记录表,如果没有则
创建表
,然后执行当天
Excel
动态
创建
Mysql
数据库表,并将Excel
中
的数据插入到
动态
创建的
Mysql
表
中
1.传入参数为表名,excel文件名和sheet名。 2.将excel
中
的空值以sql的null值存储到数据库。 3.根据sheet
中
的列数,
动态
创建数据库表名,数据库字段名为 name1,name2...... 4.将excel
中
的值传入
动态
创建的表
中
。 第一步查询指定目标excel表格
中
的所有数据: 创建List<String>类型的返回返回方法,传入参数为excel文件名...
根据excel列
动态
创建
mysql
表,Excel
动态
创建
Mysql
数据库表,并将Excel
中
的数据插入到
动态
创建的
Mysql
表
中
...
1.传入参数为表名,excel文件名和sheet名。2.将excel
中
的空值以sql的null值存储到数据库。3.根据sheet
中
的列数,
动态
创建数据库表名,数据库字段名为 name1,name2......4.将excel
中
的值传入
动态
创建的表
中
。第一步查询指定目标excel表格
中
的所有数据: 创建List类型的返回返回方法,传入参数为excel文件名和sheet名,使用Workbook打开文件...
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章