精华内容
下载资源
问答
  • 1、jar:https://repo1.maven.org/maven2/ 网上查询jxl-2.6.jar属于哪个包下的jar 去链接中下载2、excle格式3、执行代码import java.io.File;import java.io.PrintWriter;import java.util.Date;import jxl.Sheet;...

    1、jar:https://repo1.maven.org/maven2/   网上查询jxl-2.6.jar属于哪个包下的jar 去链接中下载

    2、excle格式

    c5cf396441557af423d1b31101b7970b.png

    3、执行代码

    import java.io.File;

    import java.io.PrintWriter;

    import java.util.Date;

    import jxl.Sheet;

    import jxl.Workbook;

    public class Main {

    public static void main(String[] args) throws Exception {

    File file = new File("D:\\aaa.xls");

    Workbook wb = Workbook.getWorkbook(file);

    Sheet[] sheets = wb.getSheets();

    System.out.println("当前文件夹的sheet数量" + sheets.length);

    Date dateStart = new Date();

    PrintWriter writer = new PrintWriter("D:\\result.sql") ;

    for (int i = 1; i < sheets.length; i++) {

    Sheet sheet = wb.getSheet(i);

    String createstr = createstatement(sheet);

    writer.write(createstr);

    }

    writer.close();

    Date dateEnd = new Date();

    System.out.println("生成完毕,一共用时:"+(dateEnd.getTime()-dateStart.getTime())/1000+"秒");

    }

    // 生成建表语句的方法

    public static String createstatement(Sheet sheet) {

    // CREATE TABLE `NewTable` (

    // `id` int NULL DEFAULT NULL COMMENT '中文id' ,

    // `name` varchar(10) NULL DEFAULT 'wjw' COMMENT '名字' ,

    // `age` decimal(5,2) NOT NULL DEFAULT 5.12 COMMENT '年龄'

    // )

    // COMMENT='测试';

    StringBuffer bodysb = new StringBuffer(); // 建表语句的表头和结尾注释不分

    StringBuffer fldsb = new StringBuffer(); // 字段部分

    StringBuffer commentsb = new StringBuffer(); // 表中文名

    StringBuffer partitionsb = new StringBuffer(); // 分区字段部分

    bodysb.append("-- 建表语句"+sheet.getCell(2, 0).getContents()+": \r\n create table ");

    bodysb.append(sheet.getCell(1, 0).getContents());

    // 表头部分

    bodysb.append(" (\r\n");

    // 表中文名

    commentsb.append("\r\ncomment '" + sheet.getCell(2, 0).getContents() + "';\r\n\n\n\n");

    // 字段部分

    for (int i = 2; i < sheet.getRows(); i++) {

    // 首行处理

    if (i == 2) {

    fldsb.append(" " + sheet.getCell(0, 2).getContents() + " " + sheet.getCell(1, 2).getContents());

    String isNullVal = sheet.getCell(2, 2).getContents();

    String defaultVal = sheet.getCell(3, 2).getContents();

    if ("N".equals(isNullVal.toUpperCase())) { //不允许为null

    fldsb.append(" NOT NULL");

    if (!"".equals(defaultVal)) { //存在默认

    fldsb.append(" DEFAULT '" + defaultVal + "'");

    }

    } else {

    fldsb.append(" NULL");

    }

    if (!"".equals(sheet.getCell(4, 2).getContents())) {

    fldsb.append(" comment '" + sheet.getCell(4, 2).getContents() + "',\r\n");

    }else{

    fldsb.append(",\r\n");

    }

    } else if (i > 2 && i < sheet.getRows() - 1) {

    for (int j = 0; j <= 4; j++) {

    switch (j) {

    case 0:

    fldsb.append(" " + sheet.getCell(j, i).getContents());

    break;

    case 1:

    fldsb.append(" " + sheet.getCell(j, i).getContents());

    break;

    case 2:

    String isNullVal = sheet.getCell(j, i).getContents();

    int addj = j + 1;//将默认值一并处理

    String defaultVal = sheet.getCell(addj, i).getContents();

    if ("N".equals(isNullVal.toUpperCase())) { //不允许为null

    fldsb.append(" NOT NULL");

    if (!"".equals(defaultVal)) { //存在默认

    fldsb.append(" DEFAULT '" + defaultVal + "'");

    }

    } else {

    fldsb.append(" NULL");

    }

    break;

    case 3:

    break;

    case 4:

    if (!"".equals(sheet.getCell(j, i).getContents())) {

    fldsb.append(" comment '" + sheet.getCell(j, i).getContents() + "',\r\n");

    }else{

    fldsb.append(",\r\n");

    }

    break;

    default:

    break;

    }

    }

    } else {

    fldsb.append(" " + sheet.getCell(0, sheet.getRows() - 1).getContents() + " " + sheet.getCell(1, sheet.getRows() - 1).getContents());

    String isNullVal = sheet.getCell(2, sheet.getRows() - 1).getContents();

    String defaultVal = sheet.getCell(3, sheet.getRows() - 1).getContents();

    if ("N".equals(isNullVal.toUpperCase())) { //不允许为null

    fldsb.append(" NOT NULL");

    if (!"".equals(defaultVal)) { //存在默认

    fldsb.append(" DEFAULT '" + defaultVal + "'");

    }

    } else {

    fldsb.append(" NULL");

    }

    fldsb.append(" comment '" + sheet.getCell(4, sheet.getRows() - 1).getContents() + "'\r\n)");

    }

    }

    // 合并结果集

    StringBuffer result = new StringBuffer();

    result = bodysb.append(fldsb).append(commentsb).append(partitionsb);

    return result.toString();

    }

    }

    生成结果:

    47d4744cf1840b86d880074eb26e1698.png

    展开全文
  • Java 使用executeUpdate向数据库中创建表格一、创建mysql.ini文件,配置如下driver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/select_testuser=rootpass=123456这样以后修改数据库的配置直接在mysql....

    Java 使用executeUpdate向数据库中创建表格

    一、创建mysql.ini文件,配置如下

    driver=com.mysql.jdbc.Driver

    url=jdbc:mysql://127.0.0.1:3306/select_test

    user=root

    pass=123456

    这样以后修改数据库的配置直接在mysql.ini文件中修改。

    二、编写代码

    initParam方法: 获得mysql.ini中的数据

    createTale方法: 连接数据库,并且executeUpdate执行sql语句。此例的sql文件为创建表语句。

    main方法: 传入Sql语句。

    class ExecuteDDL {

    private String driver;

    private String url;

    private String user;

    private String pass;

    Connection conn;

    Statement stmt;

    public void initParam(String paramFile) throws Exception {

    Properties props = new Properties();

    props.load(new FileInputStream(paramFile));

    driver = props.getProperty("driver");

    url = props.getProperty("url");

    user = props.getProperty("user");

    pass = props.getProperty("pass");

    }

    public void createTale(String sql) throws Exception{

    try {

    Class.forName(driver);

    conn = DriverManager.getConnection(url,user,pass);

    stmt = conn.createStatement();

    stmt.executeUpdate(sql);

    }

    finally

    {

    if (stmt != null) {

    stmt.close();

    }

    if (conn != null) {

    conn.close();

    }

    }

    }

    /**

    * @param args

    * @throws Exception

    */

    public static void main(String[] args) throws Exception {

    // TODO Auto-generated method stub

    ExecuteDDL ed = new ExecuteDDL();

    ed.initParam("src/mysql.ini");

    ed.createTale("create table student " +

    "(id int, " +

    "name varchar(50), " +

    "num varchar(20) )");

    System.out.println("Creating table success!");

    }

    注意事项:传入的Sql语句最好在MySql测试通过,并且传入的mysql.int文件的路径必须正确。

    当执行完毕后,在MySql的select_test数据库中查看该Student表是否已经创建成功了。

    三、使用executeUpdate方法,向表中插入数据。

    将上面的创建表的Sql语句改为插入数据表的语句,执行executeUpdate方法,其结果就是想表中插入数据。

    创建insertSql变量。

    private static String insertSql = "insert into student values(1,'XiaoMing','06108787')";

    执行插入语句。

    ed.createTale(insertSql);

    其它代码都是一样的。

    展开全文
  • DBMS_METADATA.GET_DDL包可以...如下(SQLPLUS中执行):1.得到一个表的ddl语句:SET SERVEROUTPUT ONSET LINESIZE 1000SET FEEDBACK OFFsetlong 999999 ------显示不完整SET PAGESIZE 1000 ----分页EXECUTEDBMS_MET...

    DBMS_METADATA.GET_DDL包可以得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):

    1.得

    到一个表的ddl语句:

    SET SERVEROUTPUT ON

    SET LINESIZE 1000

    SET FEEDBACK OFF

    set

    long 999999             ------显示不完整

    SET PAGESIZE 1000    ----分页

    EXECUTE

    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);

    ---去除storage等多余参数

    SELECT DBMS_METADATA.GET_DDL('TABLE','TCC_NE_FRAME') FROM DUAL;

    SELECT DBMS_METADATA.GET_DDL('TABLE','TCC_NE_SNAP') FROM DUAL;

    2.得到一个用户下的所有表,索引,存储过程的ddl

    SET SERVEROUTPUT ON

    SET LINESIZE 1000

    SET FEEDBACK OFF

    set

    long 999999  ------显示不完整

    SET PAGESIZE 1000  ----分页

    ---去除storage等多

    余参数

    EXECUTE

    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);

    SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)

    FROM USER_OBJECTS u

    where U.OBJECT_TYPE IN

    ('TABLE','INDEX','PROCEDURE');

    3.得到所有表空间的ddl语句

    SET SERVEROUTPUT ON

    SET LINESIZE 1000

    SET FEEDBACK OFF

    set

    long 999999------显示不完整

    SET PAGESIZE 1000----分页

    ---去除storage等多余参数

    SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)

    FROM

    DBA_TABLESPACES TS;

    4.得到所有创建用户的ddl

    SET SERVEROUTPUT ON

    SET LINESIZE 1000

    SET FEEDBACK OFF

    set

    long 999999------显示不完整

    SET PAGESIZE 1000----分页

    ---去除storage等多余参数

    SELECT DBMS_METADATA.GET_DDL('USER',U.username)

    FROM DBA_USERS

    U;

    另外,若执行不了该包,则需要正确安装好相应的包。

    posted on 2010-04-22 12:52 duduli 阅读(8253) 评论(1)  编辑  收藏 所属分类: 数据库 、业余DBA

    展开全文
  • 第一种方法是使用工具,如:pl/sql developer,在【工具】--【导出用户对象】出现就可以得到建表脚本。第二种方法是,sql语句。DBMS_METADATA.GET_DDL包可以得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):1.得 ...

    第一种方法是使用工具,如:

    pl/sql developer,在【工具】--【导出用户对象】出现就可以得到建表脚本。

    第二种方法是,sql语句。

    DBMS_METADATA.GET_DDL包可以得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):

    1.得 到一个表的ddl语句:

    SET SERVEROUTPUT ON

    SET LINESIZE 1000

    SET FEEDBACK OFF

    set long 99999

    set pagesize 4000

    ---去除storage等多余参数(可选)

    SQL> EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);

    -- 获取ddl        ##('TABLE','表名','用户名')

    SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS') FROM DUAL;

    DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS')

    --------------------------------------------------------------------------------

    CREATE TABLE "MOBILE_CBZS"."CBZS_DMCODE_DEP_TYPE"

    (    "TYPE_ONE" VARCHAR2(6),

    "TYPE_ONE_DESC" VARCHAR2(30),

    "TYPE_TWO" VARCHAR2(6),

    "TYPE_TWO_DESC" VARCHAR2(30),

    "TYPE_ONE_ORD" NUMBER,

    "TYPE_TWO_ORD" NUMBER

    ) PCTFREE 0 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS LOGGING

    TABLESPACE "DM_TBS_001"

    2.得到一个用户下的所有表,索引,存储过程的ddl

    SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)   FROM USER_OBJECTS u  where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');

    3.得到所有表空间的ddl语句

    SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;

    4.得到所有创建用户的ddl

    SELECT DBMS_METADATA.GET_DDL('USER',U.username)  FROM DBA_USERS U;

    另外,若执行不了该包,则需要正确安装好相应的包。

    拓展:-- 通过dblink补数据

    insert into MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN select * from MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN@oldhbdw;

    展开全文
  • 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过exportwithrows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微...
  • 执行每个表的建表语句的时候都是成功的,但放到一起连续执行就提示编译错误. 语句大概是这样的,执行到第一个 "end;"后就不执行了,整个文件有许多创建触发器的,也就有许多"end;", 郁闷. [code="java"]CREATE ...
  • 好程序员Java教程解读JDBC,JDBC简介- JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一...
  • import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;... * 执行DDL语句 */ public class JDBCDemo5 { public static void main(String[] args) { Connection conn =
  • 答:JDBC(Java DataBase Connectivity) java数据库连接 是JavaEE平台下的技术规范 定义了在Java语言中连接数据库,执行SQL语句的标准 可以为多钟关系数据库提供统一访问(2) JDBC操作中涉及到的接口和类主要有哪些?...
  • 首先我们应该知道什么是jdbcJDBC(JavaDataBaseConnectivity)java 数据库连接 , 是 JavaEE 平台下的技术规范 ,定义了在 Java 语言中连接数据,执行 SQL 语句的标准 , 可以为多种关系数据库提供统一访问。...
  • 一、概述JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是Java访问数据库的标准规范。...
  • JDBC 是一种用于执行SQL语句Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。java 提供了jdbc的接口规范,对应数据库厂商依照规范进行驱动类库开发,提供给开发者。 应用程序...
  • java.sql.SQLSyntaxErrorException: ORA-02289 二、解决 通过Debug发现,就是在这一句代码执行时报错的: JobExecution execution = this.jobLauncher.run(job, nextParameters); 但是,我们找到这个run()方法,发...
  • Phoenix是构建在HBase上的一个SQL层,能让我们用...1.什么是PhoenixPhoenix完全使用Java编写,将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。Phoenix主要能做以下这些事情:将SQL查询编译...
  • Oracle在Java中的语句使用和执行

    千次阅读 2018-03-29 15:41:20
    在Oracle数据库中一些建表,插入或删除数据我们都会很快的操作,那么在Java中如何操作呢?一、介绍先加载驱动、连接数据库Connection之后,再创建一个sql语句的编译器:Statement stat = conn.createStatement();...
  • Myeclipse的默认编码是gbk,所以要把mysql的编码也编程gbk。 方式是在mysql的my.ini文件中[client]下改为default-character-set = gbk: PS:注意在改之前要关掉mysql的服务...如果之前建好了表建议删掉重新建表。 ...
  • 由于程序的需要,在SQLServer 中创建触发器及建表,碰到了在java 代码中执行创建触发器及表。/**建立中间表*/public static final StringcreateMiddleTableSQL ="CREATE TABLE [dbo].[AlarmsMiddleTbl] ( "+ "[id] ...
  • MYSQL 建表不支持InnoDB

    2011-08-30 10:28:01
    在Mysql5.5中执行如下建表语句 [code="java"]CREATE TABLE JBPM4_DEPLOYMENT ( DBID_ BIGINT NOT NULL, NAME_ LONGTEXT, TIMESTAMP_ BIGINT, STATE_ VARCHAR(255), PRIMARY...
  • 前面博客文章介绍了使用shell命令生成*Db.java、*.thrift或*.yaml文件所需语句,但使用起来并不是那么顺手,还需一条条执行,很繁琐,于是想直接将上述命令生成一个shell脚本,执行时只需传入一个sql建表语句的文件
  • XML自动建表/存库

    2015-05-28 23:17:28
    根据HashMap内容,模仿sql语句的格式动态生成SQL语句执行语句实现自动建表/入库操作 注:源码实现XML自动生成XSD函数,XSD自动生成类(Java Bean),绑定XML内容到类(Java Bean),对象转化为XML源码下载...
  • java仓库管理系统

    2019-02-11 10:24:37
    java工程是使用java swing 图形界面开发的仓库管理系统,功能包括用户管理,权限管理,角色管理,库存管理,报表统计及导出功能可用于高校毕业设计及二次开发,已将源码和mysql建表脚本上传至该压缩包,将工程导入...
  • 1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 ...数据库: ms sql server 2000 ...目的: 查询性能测试,比较两种查询...-- 建表 create table t_userinfo ( use
  • 关联查询集群上数据,因为好像spark.SQL不能写子查询,我就分开写的,很奇怪,第一个 建表语句没有问题,但是第二个建表语句总是执行不下去,我还试过注释掉第一个语句,但是第二个语句还是出错,why?。 import ...
  • 负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成下边的文本,规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建表语句、...
  • mysql执行一条sql查询语句背后发生了什么呢?我是李福春,我在准备面试,今天的题目是:mysql的体系结构是怎样的?一条sql语句在mysql的体系结构中经历了什么?答:mysql体系结构mysql的题解结构可以分成3个部分。...
  • 本程序实现了注册登入,私聊,群聊,文件传输的功能。 程序需要连接MySQL数据库,所以需要先安装MySQL数据库,然后执行建表语句,才可以运行。
  • 当使用 java 语言 执行建表语句时发生如下异常 org.postgresql.util.PSQLException: ERROR: type "geometry" does not exist 解决方案 1) 首先证明不是代码编写的问题,跟java语言无关 2) 打开你的PG数据库 ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

java执行建表语句

java 订阅