`
cui09
  • 浏览: 115402 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论

通过读取xml文件动态建表

阅读更多

<?xml version="1.0" encoding="utf-8"?>
<Stoke>
 <Name ID="1" Type="VarChar" Length="10" Index="True">Ada</Name>
 <Sex ID="2" Type="VarChar" Length="2">female</Sex>
 <Age ID="3" Type="Integer">21</Age>
 <Comm>
  <Mobile ID="4" Type="VarChar" Length="15">13300008888</Mobile>
  <Email ID="5" Type="VarChar" Length="30">Ada@gmail.com</Email>
 </Comm>
</Stoke>

将上面的xml描述在数据库中创建一张表

import java.io.*;
import java.sql.*;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class XmlToSql
{
 public static void getNode(NodeList nl,StringBuffer sql)
 {
  for(int i=0;i<nl.getLength();i++)
  {
   Node node = nl.item(i);
   if(node.getNodeType() == Node.ELEMENT_NODE)
   {
    if(node.hasAttributes())
    {
     sql.append(node.getNodeName()+" ");
     NamedNodeMap attr = node.getAttributes();
     sql.append(attr.getNamedItem("Type").getNodeValue());
     if(attr.getNamedItem("Length")!=null)
     {
      sql.append("("+attr.getNamedItem("Length").getNodeValue()+")");
     }    
     sql.append(",");
     if(attr.getNamedItem("Index")!=null && attr.getNamedItem("Index").getNodeValue().equals("True"))
     {
      sql.append("index index_"+node.getNodeName()+"("+node.getNodeName()+"),");
     }
    }
    else
    {
     getNode(node.getChildNodes(),sql);
    }       
   }
  }
 }
 
 public static void main(String[] args)
 {
  try
  {
   DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
   DocumentBuilder builder = fac.newDocumentBuilder();
   Document document = builder.parse(new File("Data.xml"));
   
   Node node = document.getFirstChild();
   
   StringBuffer sql = new StringBuffer("create table temp(id int(11) NOT NULL auto_increment,");
   getNode(node.getChildNodes(),sql);
   sql.append("PRIMARY KEY  (id))");
   
   Class.forName("com.mysql.jdbc.Driver");
   String url ="jdbc:mysql://localhost/test";
   Connection conn= DriverManager.getConnection(url,"root","root");
   Statement stmt = conn.createStatement();
   stmt.execute(sql.toString());
  }
  catch(Exception e){
   e.printStackTrace();
  }
 } 
}

分享到:
评论

相关推荐

    mysql数据库自动生成xml文件

    总结来说,MySQL数据库自动生成XML文件是一项实用的开发技能,它通过代码生成工具能够帮助我们快速地将数据库结构和数据转化为易于处理的格式。MyBatis Generator是实现这一目标的有效工具,它简化了DAO和Model的...

    JAVA读取Excel,建库建表,并生成java实体

    在你的项目中添加Apache POI依赖,如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;4.1.2 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-...

    sqlite3 window和liunx通过读取xml自动建内存表和硬盘表

    这个场景中,我们讨论的是如何在Windows和Linux环境下利用SQLite3通过读取XML文件自动生成内存表和硬盘表。 首先,XML文件是一种结构化的数据存储格式,通常用于数据交换或配置。在本例中,XML文件`collect_5k_...

    java根据excel生成 hive建表语句

    例如,在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;4.1.2 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml &lt;version&gt;4.1.2 ``` 接下来,我们需要...

    JAVA读取Excel,建库建表,并生成java实体.zip

    这个名为"JAVA读取Excel,建库建表,并生成java实体.zip"的压缩包文件,显然提供了一个完整的解决方案,涵盖了从读取Excel数据到在数据库中创建表,以及根据Excel内容生成Java实体类的全过程。下面我们将详细探讨...

    c#简易通讯录源码(可与数据库交互,导出xml文件)

    通讯录数据从数据库读取后,通过XmlWriter逐条写入XML文件,这样数据就可以在不同系统间共享或进行离线处理。 此外,描述中提到了“窗体信息保存到文本文件”,这是另一种常见的数据持久化方式。C#提供了...

    Nhibernate从映射文件生成实体类和sql建表脚本的程序

    这通常包括设置输入目录(包含所有hbm.xml文件)、输出目录(生成的C#类和SQL脚本存放位置),以及可能的命令行参数或配置文件,以控制生成代码的风格和细节。 总的来说,这个项目为使用Nhibernate的开发者提供了...

    用JSP实现XML文件到Oracle数据库的导入和导出.pdf

    - **数据导入**:从XML文件中读取数据,使用JDOM解析XML文件,然后利用Hibernate将解析得到的数据插入到Oracle数据库对应的表中。 - **数据导出**:查询Oracle数据库中的数据,使用JDOM生成XML文档,最终输出为XML...

    java实体转mysql建表语句

    MyBatis Generator是一个强大的工具,可以自动生成Java实体类、Mapper接口、Mapper XML文件以及建表语句。只需在配置文件中指定数据库连接信息和实体类路径,然后运行生成器,就能得到所需内容。 5. **手动转换**...

    mybatis入门实例(mysql数据库,带建表语句)

    在MyBatis中,通常会在Mapper XML文件中定义这些SQL语句,或者在初始化阶段通过编程方式执行。例如: ```sql CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `...

    java实现excel导入数据库

    要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库进行交互。下面将详细解释如何实现这个功能。 首先,我们需要引入两个关键的第三方库:Apache POI...

    非注解时自动配置Mybatis spring配置文件和Mybatis自动生成类所需配置文件

    主要涉及写XML文件和读取数据库表信息,读取文件目录下文件名称,比较简单。此工具自动生成非注解时Spring整合MyBatis时需要的一些配置文件,对于使用较新版本的spring,可以忽视生成的dao的配置文件,建议采用...

    实例Python处理XML文件的方法

    需求 有一个表,里面数据量比较大,每天一更新,其字段...XML文件 &lt;?xml version=1.0 encoding=UTF-8?&gt; &lt;!-- 表名 ,数据库名 可灵活配置插入哪个库哪个表 --&gt; &lt;!-- 非业务主键,自增长,可配名,其他

    SpringBoot+JPA+Freemarker 生成动态SQL

    在IT行业中,SpringBoot、JPA(Java Persistence API)和Freemarker是常见的开发工具和技术,它们在构建高效、灵活的Web应用时发挥着重要作用。...通过查看这些文件,可以进一步理解并实践这个动态SQL生成的过程。

    Hibernate建表用到的jar包

    6. **dom4j.jar**:这是一个用于XML处理的库,Hibernate使用它来读取和写入配置文件,以及解析HBM(Hibernate Mapping)文件。 7. **slf4j-api.jar 和 slf4j-*.jar**:Simple Logging Facade for Java,提供日志...

    详解java封装实现Excel建表读写操作

    本篇文章将详细介绍如何通过封装来实现Excel的建表和读写操作。主要使用的第三方库是Apache POI,这是一个强大的API,能够处理Microsoft Office格式的文件,包括Excel。 首先,在项目配置中,你需要在`pom.xml`文件...

    表自动生成ibatis工具

    4. **生成XML配置文件**:XML配置文件中包含SQL语句,工具会根据字段信息自动生成SELECT、INSERT、UPDATE、DELETE等SQL语句,并将它们配置到对应的XML文件中。 5. **生成实体类**:每个表通常对应一个Java实体类,...

    整合SSH做的网上书店,内附SQL建表代码

    通过配置`hibernate.cfg.xml`和实体类,我们可以轻松地执行CRUD(创建、读取、更新、删除)操作。 3. **Spring**:Spring框架提供了依赖注入(DI)和面向切面编程(AOP),增强了应用程序的可测试性和模块化。在这...

    struts2+hibernate整合增删改查加注册登录Demo包含数据库自动建表语句

    2. **实体类和映射文件**:为了使用Hibernate,你需要创建与数据库表对应的实体类,并编写相应的hbm.xml文件进行映射。这些类通常包含属性(对应数据库字段)和getter/setter方法。 3. **数据库自动建表语句**:在...

Global site tag (gtag.js) - Google Analytics