我们通常只用java执行DML(即:insert, update, delete, select)操作,很少用来执行DDL(create, drop, alert)操作。今天试了下如何用java来创建oracle数据库表。

首先我们来看一下java帮助文档中关于java.sql.Statement类的executeUpdate(String sql)方法描述:
int executeUpdate(String sql)
Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.

完整代码如下:

package utility.mysql;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class DbUtility {

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

String db_url = DbUtility.getDbInfo().get("db_url");
        String db_user = DbUtility.getDbInfo().get("db_user");
        String db_pwd = DbUtility.getDbInfo().get("db_pwd");

Connection conn = DbUtility.getConn(db_url, db_user, db_pwd);

String cmd = "create table test (id number(5), name varchar(10))";

DbUtility.updateCMD(conn, cmd);
    }
    
    public static void updateCMD(Connection conn, String cmd) {
        try {
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(cmd);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

public static Connection getConn(String url, String user, String pwd) {

Connection conn = null;

try {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            conn = DriverManager.getConnection(url, user, pwd);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

public static Map<String, String> getDbInfo() throws IOException {
        Map<String, String> map = new HashMap<String, String>();

Properties p = new Properties();
        InputStream in = Object.class.getResourceAsStream("/config.properties");

try {
            p.load(in);
        } catch (IOException e) {
            e.printStackTrace();
        }

map.put("db_user", p.getProperty("db_user"));
        map.put("db_pwd", p.getProperty("db_pwd"));
        map.put("db_url", p.getProperty("db_url"));

return map;
    }
}

config.properties是一个配置文件,应该放到项目的bin目录下。代码中的Object.class.getResourceAsStream("/config.properties"), “/”代码项目的根目录,即bin目录下。
因为好久不用Java了,弄了好一会才把config.properties放到了正确的位置。
config.properties内容如下:
db_user=scott
db_pwd=scott
db_url=jdbc:oracle:thin:@toughhou:1521:ORCL

Java创建Oracle数据库表的更多相关文章

  1. 创建oracle数据库表空间并分配用户

    我们在本地的oracle上或者virtualbox的oracle上 创建新的数据库表空间操作:通过system账号来创建并授权/*--创建表空间create tablespace YUJKDATAda ...

  2. java备份Oracle数据库表

    <html><head><title>数据备份</title><meta name="decorator" content=& ...

  3. 在mysql数据库中创建Oracle数据库中的scott用户表

    在mysql数据库中创建Oracle数据库中的scott用户表 作者:Eric 微信:loveoracle11g create table DEPT ( DEPTNO int(2) not null, ...

  4. 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库

    数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...

  5. Oracle - java创建Oracle 的触发器

    Oracle - java创建Oracle 的触发器 今天碰到这个问题,遇到点问题,到这来 总结一下解决的办法, 需求,为一个用户当中的表增加一个自动增长列,我还没有学Oracle 的这部分,只是简单 ...

  6. Java连接Oracle数据库的三种连接方式

    背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...

  7. Oracle数据库表分区

    一.Oracle数据库表分区概念和理解         1.1.已经存在的表没有方法可以直接转化为分区表.         1.2.不在分区字段上建立分区索引,在别的字段上建立索引相当于全局索引.效率 ...

  8. oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

    Oracle 语句中“||”代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335s ...

  9. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

    查看Oracle数据库表空间大小(空闲.已使用),是否要增加表空间的数据文件 1.查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1 ...

随机推荐

  1. android的个人代码总结

    1.关于一个动作的实现,在Activity中可以用实现一个接口的方式来实现,在实现代码时可用IF进行判断是那个要执行的动作: 2.在软件开发过程中,软件界面的布局也非常重要:还是要多看看:

  2. spring+hibernate+struts整合(2)

    spring和struts2的整合 1:配置Web.xml文件 <filter> <filter-name>struts2</filter-name> <fi ...

  3. Java中windows路径转换成linux路径等工具类

    项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...

  4. [改善Java代码]线程优先级只使用三个等级

    线程的优先级(priority)决定了线程获得CPU运行的机会,优先级越高获得的运行机会越大,优先级越低获得的机会越小.Java的线程有10个级别(准确的说是11个级别,级别为0的线程是JVM,应用程 ...

  5. hdu 4000 树状数组

    思路:找出所有 a<b<c||a<c<b的情况,在找出所有的a<b<c的情况.他们相减剩下就是a<c<b的情况了. #include<iostre ...

  6. android代码片段一

    1.Android判断是Pad或者手机 public boolean isTabletDevice() { TelephonyManager telephony = (TelephonyManager ...

  7. ENVI/IDL与ArcGIS集成开发的三种途径

    转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...

  8. BZOJ 2962

    2962: 序列操作 Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 618  Solved: 225[Submit][Status][Discuss] ...

  9. CSS3如何实现2D转换和3D转换,他们有何区别

    CSS3中2D3D技术的发展,带来了更丰富的视觉效果~他们的实现机理是怎样的呢? 1定义 2D: 能够对元素进行移动,缩放,转动,拉长或拉伸. 3D: 允许对元素进行格式化,在三维空间进行操作.元素改 ...

  10. CXF(2.7.10) - WSDL2Java generated Client

    以调用 http://www.webxml.com.cn/ 提供的 IpAddressSearchWebService 服务为例. 1. 使用 wsdl2java 工具,根据 wsdl 生成 JAX- ...