怎样用java代码动态生成数据库表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用java代码动态生成数据库表相关的知识,希望对你有一定的参考价值。
感谢2楼的回答,我要的是不使用任何框架的 纯jdbc的 根据页面传过来值 动态生成对应的数据库表 并保存数据
Class.forName("oracle.jdbc.driver.OracleDriver");Connection conn=DriverManager.getConnection("数据库url","帐号","密码");
state=conn.createStatement();
state.executeUpdate("create 建表语句");
state.executeUpdate("insert 插入数据")------>插入的值由页面获得,注意字符串拼接。
然后就是关闭连接,state.close();conn.close();
核心代码就是这些,具体应用你可以多写几个方法(增删改查),都是类似的,注意异常的处理,关闭连接最好在finally中进行。 参考技术A 这个就要借助hibernate tools跟xdoclet来完成了;
首先你要在你的java代码里应用xdoclet标签,例如
Java code
private String name;
/**
* @hibernate.property column = "name" length = "50"
*/
public String getName()
return this.name;
public void setName(String name)
this.name = name;
其中,写到javadoc上的@hibernate.property column = "name" length = "50"
就是xdoclet标签,它需要xdoclet程序来处理,这里就需要用到hibernate tools。
具体做的话一般情况是建一个ant脚本来完成,例如:
XML code
<target name="hibernate-xdoclet" depends="init, init-xdoclet_hibernate"
description="Generate mapping documents">
<echo>+---------------------------------------------------+</echo>
<echo>| |</echo>
<echo>| R U N N I N G H I B E R N A T E D O C L E T |</echo>
<echo>| |</echo>
<echo>+---------------------------------------------------+</echo>
<delete>
<fileset dir="$" includes="hibernate.cfg.xml" />
</delete>
<echo message="hibernate.cfg.xml at $"></echo>
<sleep seconds="1"/>
<hibernatedoclet
destdir="$"
excludedtags="@version,@author,@todo,@see"
addedtags="@xdoclet-generated at $,@copyright The XDoclet Team,@author XDoclet,@version $"
force="false"
verbose="true">
<fileset dir="$">
<include name="com/**/model/**/*.java"/>
</fileset>
<hibernatecfg
version="3.0"
destDir="$"
dialect="org.hibernate.dialect.Oracle9Dialect"
driver="oracle.jdbc.driver.OracleDriver"
jdbcUrl="jdbc:oracle:thin:@localhost:1521:RESDL"
userName="test"
password="123"
showSql="true"
schema="true"
validateXML="true"
/>
<hibernate version="3.0"/>
</hibernatedoclet>
</target>
上面的代码是生成hbm跟cfg文件的,下面再介绍如何从java类到数据库:
XML code
<target name="hibernate-schema" depends="init, init-hibernate-schema"
description="Generate DB schema from the O/R mapping files">
<echo>+---------------------------------------------------+</echo>
<echo>| |</echo>
<echo>| R U N N I N G D B S C H E M A |</echo>
<echo>| |</echo>
<echo>+---------------------------------------------------+</echo>
<echo message="mysql.sql at etc/hbm2doc"></echo>
<sleep seconds="1"/>
<hibernatetool destdir="etc/hbm2doc">
<configuration propertyFile="$/hibernate.properties">
<fileset dir="$">
<include name="com/**/model/**/*.hbm.xml"/>
</fileset>
</configuration>
<hbm2ddl drop="true"
outputfilename="mysql.sql"/>
<hbm2doc/>
</hibernatetool>
</target>
当然ant工程里的一些初始化需要自己定义,我这里只摘录关键部分,具体的东西请查阅相关文档,hibernate tutorail里就有个例子 参考技术B 1.先与数据库连接,代码自己找 2.然后写一个Sql命令类 专门生成命令和自由搭配 3.将命令传入数据库 参考技术C 你的 意思是用java语言 建立数据库 数据表么
C#里怎么用代码删除动态生成的按钮
如题;
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
Button bt = new Button();
bt.Size = new Size(20, 20);
bt.Location = new Point(i * 20, j * 20 + 50);
bt.TabStop = false;
Controls.Add(bt);
像这样生成的9X9的按钮,怎样用代码全部删除,最好这个代码在一个click事件里,像一键清除那样!求大神指点!
Clear(this);
//label1.Text = i.ToString();
private void Clear(Control ctrl)
foreach (Control c in Controls)
if (c is Button)
c.Dispose();
//i++;
Clear(c);
本回答被提问者采纳 参考技术B 如果你动态生成的控件是放在一个容器里面的(panel),那么直接panel.Controls.Clear(); 参考技术C 创建按钮的时候,把它们都存到一个List里面,删除的时候就方便了。 参考技术D Panel p = new Panel();
public Form1()
InitializeComponent();
p.Width = 500;
p.Height = 500;
p.BackColor = Color.Black;
p.Location = new Point(0, 0);
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
Button bt = new Button();
bt.Size = new Size(20, 20);
bt.Location = new Point(i * 20, j * 20 + 50);
bt.TabStop = false;
bt.Click+=new EventHandler(bt_Click);
p.Controls.Add(bt);
this.Controls.Add(p);
private void bt_Click(object sender, EventArgs e)
Button b=(Button)sender;
b.Hide();
请采纳! 第5个回答 2013-05-27 就跟楼下说的那样,最好放在一个panel(面板)里,这样只要清除面板就可以了,清楚代码楼下已经列出
以上是关于怎样用java代码动态生成数据库表的主要内容,如果未能解决你的问题,请参考以下文章
DataGridViewComboBoxColumn这个东西,要怎样动态生成,动态绑定数据呢???真的好郁闷,狗一样的微软