项目中有一个需求要动态创建数据库并且要动态连接数据库,本来以为还很难实现呢,在网上找了好久,都不是很理想,最后看到有人说创建数据库时,先连接到任意一个数据库,获得连接后用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;
}
}
转自http://hi.baidu.com/200770842223/blog/item/971cb3fbdae91a6d034f5645.html
分享到:
相关推荐
MyBatis本身并不直接支持动态创建数据库表,但可以通过结合Spring或Java的JDBC API来实现。通常,我们会在应用初始化阶段或者在特定业务逻辑执行前,通过执行DDL(Data Definition Language)语句来创建表。例如,...
实现动态加载数据库驱动的基本思路是,在需要连接数据库时,根据配置信息(如数据库类型、版本)加载相应的驱动类,并创建数据库连接。以下是一个简化的动态加载数据库驱动的Java代码示例: ```java public class ...
- `DBCreator`类:负责动态创建数据库和表,以及初始化数据。 - SQL脚本文件:可能包含创建数据库和表的SQL语句。 - 配置文件:存储数据库连接参数,如URL、用户名和密码。 - 测试类:用于验证数据库创建和初始化...
JSP是Java动态网页技术,它可以结合HTML、CSS和Java代码来创建交互式的网页。在JSP中,我们可以使用内置对象如`request`、`response`和`session`来处理用户请求,读取表单数据,向数据库发送更新请求,以及管理用户...
1. **BasicDataSource**:这是DBCP提供的核心类,用于创建数据库连接池。 2. **ThreadLocal**:用于保存每个线程的本地副本数据,本例中用来保存当前线程的数据库连接。 3. **Properties**:用于加载配置文件中的...
然而,在某些情况下,我们可能需要在运行时根据不同的条件或需求动态地切换数据库,比如在测试环境和生产环境中使用不同的数据库。这个过程就称为“动态切换数据库”。在本文中,我们将深入探讨如何在Java Hibernate...
通过上述步骤,我们可以在Java应用中利用JNDI实现数据库连接的动态配置,这样不仅提高了代码的可维护性和扩展性,也使得系统更加灵活。此外,这种方式还能够有效地管理数据库连接池,减少资源占用,提高系统的整体...
### Java动态代理实现数据库连接池 #### 背景与挑战 在开发应用程序时,数据库连接池是一个常用且重要的组成部分。频繁地建立和断开数据库连接不仅效率低下,还可能导致性能瓶颈。为了解决这一问题,引入了数据库...
通过配置文件或属性存储不同数据库的信息,连接池管理器可以在运行时动态创建针对不同数据库的连接。 3. **连接管理**:连接池需要有效地分配、回收和监控连接,避免资源泄露。例如,可以设置空闲超时,当连接长...
这种方式可以显著提高性能,减少资源消耗,因为创建和销毁数据库连接的过程是昂贵的。此外,连接池还能有效控制并发访问数据库的连接数量,防止过多的连接导致数据库服务器压力过大。 在Java中,有许多成熟的数据库...
在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用和服务器端开发中占据了重要地位。...在实际项目中,根据具体需求选择合适的数据库和连接方式,以及优化数据库访问策略,是提高系统性能的关键。
本资料主要聚焦于Java如何连接MySQL和Oracle这两种广泛应用的关系型数据库,通过实例来深入理解这一过程。 首先,我们要知道Java连接数据库的核心是JDBC(Java Database Connectivity),它提供了统一的API,使得...
上述代码中,`BaseDao`类定义了一个数据库连接池的基本结构,包括初始化参数(如数据库URL、驱动、用户名、密码等),以及用于管理连接的核心属性(如初始连接数、增量连接数、最大连接数和连接池对象)。...
在Java编程中,连接数据库并插入数据是一项基本且重要的任务,尤其在开发Web应用程序时,如JSP(JavaServer Pages)和Servlet结合MySQL数据库的场景。在这个过程中,开发者需要掌握如何配置数据库连接、编写SQL语句...
Java 侨联,即 Java 数据库连接(Java Database ...学习这个示例可以帮助你更好地理解如何在 Java 中使用 JDBC 连接和操作数据库。确保阅读和理解代码,然后尝试自己编写和运行类似的程序,以加深对 JDBC 的掌握。
在本文中,我们将探讨如何使用Java的动态代理来实现数据库连接池,从而解决传统连接池设计中的耦合度问题和资源管理问题。 首先,数据库连接池是应用程序管理数据库连接的一种高效方式。它通过复用已建立的数据库...
本压缩包"sql.rar"中包含的相关知识点主要围绕Java如何通过JDBC(Java Database Connectivity)来实现对SQL数据库的连接和操作。 首先,Java数据库连接(JDBC)是Java API,它提供了一组接口和类,使得Java程序能够...
5. **`DriverManager.getConnection()`**:这个方法是JDBC API的一部分,用于根据提供的URL、用户名和密码创建数据库连接。例如,`DriverManager.getConnection(url, user, password)`。 6. **不同数据库的连接方式...