java 動態創建數據庫和動態連接數據庫


項目中有一個需求要動態創建數據庫並且要動態連接數據庫,本來以為還很難實現呢,在網上找了好久,都不是很理想,最后看到有人說創建數據庫時,先連接到任意一個數據庫,獲得連接后用createStatement()語句創建自己的數據庫,自己試了一下,果然可以.動態連接數據庫就跟簡單了!下面是代碼,僅供參考!這些在jdbc里面實現的,如果是用hibernate的話,不知道怎么樣,我沒有試過!

package com.cn.javaEE.dataSource;

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

public class CreateDataSource {

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

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;

public Connection getConn(String database) {

  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;

   conn = DriverManager.getConnection(url, username, password);   Statement smt = conn.createStatement();   if (conn != null) {    System.out.println("數據庫連接成功!");

    smt.executeUpdate(databaseSql);

    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;}}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM