java 动态数据库_java 动态建立数据库和动态链接数据库

项目中有一个需求要动态建立数据库而且要动态链接数据库,原本觉得还很难实现呢,在网上找了很久,都不是很理想,最后看到有人说建立数据库时,先链接到任意一个数据库,得到链接后用createStatement()语句建立本身的数据库,本身试了一下,果真能够.动态链接数据库就跟简单了!下面是代码,仅供参考!这些在jdbc里面实现的,若是是用hibernate的话,不知道怎么样,我没有试过!java

package com.cn.javaEE.dataSource;mysql

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;sql

public class CreateDataSource {数据库

/*** @param args*/public static void main(String[] args) {  // TODO Auto-generated method stub  String database = "test2";  new CreateDataSource().getConn(database);}url

String mysqlDriver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/test1";String newUrl = "jdbc:mysql://localhost:3306/";String username = "root";String password = "root";Connection conn = null;Connection newConn = null;hibernate

public Connection getConn(String database) {get

try {   Class.forName(mysqlDriver);  } catch (ClassNotFoundException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  try {   String tableSql = "create table t_user (username varchar(50) not null primary key,"     + "password varchar(20) not null ); ";   String databaseSql = "create database " + database;io

conn = DriverManager.getConnection(url, username, password);   Statement smt = conn.createStatement();   if (conn != null) {    System.out.println("数据库链接成功!");table

smt.executeUpdate(databaseSql);class

newConn = DriverManager.getConnection(newUrl + database,      username, password);    if (newConn != null) {     System.out.println("已经链接到新建立的数据库:" + database);

Statement newSmt = newConn.createStatement();     int i = newSmt.executeUpdate(tableSql);//DDL语句返回值为0;     if (i == 0) {      System.out.println(tableSql + "表已经建立成功!");     }    }   }

} catch (SQLException e1) {   // TODO Auto-generated catch block   e1.printStackTrace();  }  return conn;}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值