在这之前一直都是先在Oracle、MySql等数据库中将数据库、表等操作创建好,再开始编写代码,最近看到一个项目则是通过java代码来执行sql语句来创建数据库这一系列的操作,感觉还是蛮新鲜的,起码对我来说是这样的,接下来将部分的关键代码记录下来,方便后面忘了再回来看看
这里面我用到了c3p0包中的ComboPooledDataSource类和spring中的JdbcTemplate类,在之前对这两个类不了解,这里也借这个机会学习学习这两个类
如果要使用这两个类必须导入c3p0-x.x.xjar好spring.jar包
使用ComboPooledDataSource获取数据源
public DataSource createDataSource(String driver, String url,
String userName, String password) {
try {
//创建ComboPooledDataSource
ComboPooledDataSource comboPooledDataSource=new ComboPooledDataSource();
//设置相应参数
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(userName);
comboPooledDataSource.setPassword(password);
//设置最小连接个数
comboPooledDataSource.setMinPoolSize(5);
//设置最大连接个数
comboPooledDataSource.setMaxPoolSize(50);
//设置最大空闲时间
comboPooledDataSource.setMaxIdleTime(5000);
//返回数据源对象
return comboPooledDataSource;
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return null;
}
测试MySql连接代码
/**
* 测试Mysql连接
* @return
*/
private boolean testMySqlConnection(){
//数据库驱动
String driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库连接
String conUrl="jdbc:mysql://"+this.url+"/test";
try {
//获取数据源对象
DataSource newDataSource=dataScourceCreate.createDataSource(driverClass, conUrl, userName, password);
//为jdbcTemplate设置数据源
this.jdbcTemplate.setDataSource(newDataSource);
//sql语句--创建数据库
String sql="CREATE DATABASE IF NOT EXISTS "+this.name+" DEFAULT CHARACTER SET UTF8";
//执行sql语句
this.jdbcTemplate.execute(sql);
//获取数据源--测试刚创建的数据库
newDataSource=dataScourceCreate.createDataSource(driverClass, "jdbc:mysql://"+this.url+"/"+this.name+"", userName, password);
this.jdbcTemplate.setDataSource(newDataSource);
this.jdbcTemplate.execute("use "+this.name);
this.jdbcTemplate.execute("create table if not exists student(id int not null)");
this.jdbcTemplate.execute("drop table student");
return true;
} catch (DataAccessException e) {
e.printStackTrace();
return false;
}
}
测试SqlServer连接
/**
* 测试SqlServer数据库连接
* @return
*/
private boolean testSqlServerConnection(){
//数据库驱动
String driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库连接
String conUrl="jdbc:sqlserver://"+this.url+";databasename=master";
try {
//获取数据源对象
DataSource newDataSource=dataScourceCreate.createDataSource(driverClass, conUrl, userName, password);
//设置数据源
this.jdbcTemplate.setDataSource(newDataSource);
//创建是否存在数据库sql语句
String sql="if exists(select 1 from sysdatabases where name='"+this.name+"') drop database "+this.name;
//执行sql语句
this.jdbcTemplate.execute(sql);
//获取创建数据库sql语句并执行
this.jdbcTemplate.execute(sqlUtil.createDataBaseSql(this.name));
//从新获取数据源--测试刚创建的数据库
newDataSource=dataScourceCreate.createDataSource(driverClass, "jdbc:sqlserver://"+this.url+";databasename="+this.name, userName, password);
this.jdbcTemplate.setDataSource(newDataSource);
this.jdbcTemplate.execute("use "+this.name);
//执行判断表是否存在
this.jdbcTemplate.execute("if exists(select 1 from sysobjects where name='test') drop table test");
//创建表
this.jdbcTemplate.execute("create table test(id int not null)");
//删除表
this.jdbcTemplate.execute("drop table test");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
测试Oracle连接
/**
* 测试Oracle连接
* @return
*/
private boolean testOracleConnection(){
//数据库驱动
String driverClass="oracle.jdbc.driver.OracleDriver";
//数据库连接
String conUrl="jdbc:oracle:thin:@"+this.url+":orcl";
try {
//获取数据源对象
DataSource newDataSource=dataScourceCreate.createDataSource(driverClass, conUrl, "system", password);
//设置数据源
this.jdbcTemplate.setDataSource(newDataSource);
//查询需要创建的用户是否存在
int result=jdbcTemplate.queryForInt("select count(*) from all_users where USERNAME='"+this.userName.toUpperCase()+"'");
if(result>0){
Map map=jdbcTemplate.queryForMap("select sid,serial# from v$session where upper(username)=upper('"+this.userName.toUpperCase()+"')");
//执行关闭
jdbcTemplate.execute("alter system kill session '"+map.get("SID")+","+map.get("SERIAL#")+"'");
//删除用户
jdbcTemplate.execute("DROP USER "+this.userName.toUpperCase()+" CASCADE");
}
//创建用户
this.jdbcTemplate.execute("CREATE USER "+this.userName+" IDENTIFIED BY "+this.password);
//给新建用户绑定权限
this.jdbcTemplate.execute("GRANT CONNECT,RESOURCE TO "+this.userName);
//连接新创建的用户
newDataSource=dataScourceCreate.createDataSource(driverClass, conUrl, this.userName, this.password);
//设置新用户的数据源
this.jdbcTemplate.setDataSource(newDataSource);
//查询该用户是否存在表
result=jdbcTemplate.queryForInt("SELECT count(*) FROM USER_TAB_COMMENTS WHERE TABLE_NAME='TEST'");
if(result>0){
//删除表
this.jdbcTemplate.execute("DROP TABLE TEST");
}
//创建表
this.jdbcTemplate.execute("CREATE TABLE TEST(ID NUMBER NOT NULL)");
//删除表
this.jdbcTemplate.execute("DROP TABLE TEST");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
关键代码都在这了,目前我只了解这3个数据库,所以也只有这3个了,代码没做优化,如果你们觉得有用,优化就自己弄吧
分享到:
相关推荐
8. **测试连接**:创建数据库后,可以尝试创建表、插入数据或执行其他数据库操作来验证连接是否正常。 9. **使用连接池**:在实际项目中,为了提高性能和管理数据库连接,通常会使用连接池(如C3P0、HikariCP或...
在Java编程环境中,创建数据库是一项常见的任务,尤其对于开发基于Java的数据驱动应用程序来说。本教程将详细介绍如何使用Java代码创建SQL Server数据库。首先,我们需要理解Java中的JDBC(Java Database ...
通过这个驱动,开发者可以在Java应用中创建数据库连接,执行SQL语句,处理结果集等。确保将这个驱动添加到项目的类路径中,以便Java程序可以找到并使用它。 3. **sqljdbc4.jar** 是针对Microsoft SQL Server的JDBC...
2. **建立连接**:通过`DriverManager.getConnection()`方法创建数据库连接。示例代码: ```java Connection conn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=...
开发者可以使用这个驱动创建数据库连接,执行SQL操作,实现数据的增删改查。 3. **DB2 JDBC驱动**: DB2是由IBM开发的企业级数据库系统,支持多种操作系统平台。DB2提供了JDBC驱动,允许Java应用程序与DB2数据库...
Java 配置数据库 Jar 包操作 Java 配置数据库 Jar 包操作是指在 Java 项目中将 MySQL 数据库的 Jar 包导入到项目中,以便使用 JDBC 连接数据库的操作。下面是关于 Java 配置数据库 Jar 包操作的详细知识点: 什么...
在Java程序中,你需要加载对应的数据库驱动,建立数据库连接,创建Statement或PreparedStatement对象来执行SQL语句,然后获取并处理结果集。 例如,要从数据库中获取数据,你可以这样做: ```java Class.forName(...
- 当应用启动时,Hibernate会读取配置,扫描实体类,然后根据元数据生成相应的SQL语句,执行这些语句以创建数据库表。 6. **注意事项**: - 数据库表的命名策略可以通过`@Table(name = "table_name")`自定义,...
在Java编程环境中,创建数据库文件索引是一项关键任务,它能极大地提高数据检索效率。这里的“文件索引”指的是在数据库中为文件目录下的文件创建一个结构化的引用,使得我们可以通过搜索索引来快速定位和访问文件。...
在Java编程中,连接数据库以实现用户登录功能是一项基础但重要的任务。这通常涉及到数据库的交互,如查询、验证用户凭据等。本教程将详细解释如何使用Java连接Oracle数据库来实现这一功能。 首先,我们需要了解Java...
本项目关注的是如何使用Java编程语言将数据库中的记录导出为CSV(Comma Separated Values)格式的文件。CSV因其通用性和易于处理的特性,被广泛应用于数据交换。 首先,让我们深入了解CSV文件格式。CSV是一种简单的...
在“Accp8.0\S2\使用Java实现数据库编程 第二章”这一主题中,我们聚焦于如何利用Java语言进行数据库编程。这通常涉及到Java的JDBC(Java Database Connectivity)技术,它是Java平台的标准接口,允许Java应用程序...
- 建立连接:使用`DriverManager.getConnection()`方法创建数据库连接。 - 创建Statement/PreparedStatement对象:用于执行SQL语句。 - 执行SQL:调用Statement/PreparedStatement的`executeQuery()`或`...
Java数据库编程是软件开发中的重要一环,尤其是在企业级应用中,数据的存储和处理是核心功能。本教程主要关注Java如何与数据库进行交互,特别是使用JDBC(Java Database Connectivity)进行连接和操作。以下是对各个...
至于`mytest.sql`文件,这通常包含创建数据库表或其他SQL脚本。开发者可以使用这些脚本来初始化数据库结构。例如,它可能包含了创建`users`表的语句: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY ...
在Java编程中,连接数据库和生成数据报表是两个核心任务,尤其在企业级应用开发中至关重要。本压缩包包含的资源旨在提供必要的库文件,帮助开发者实现这些功能。以下是相关知识点的详细介绍: 1. **Java数据库连接...
2. **建立连接**:使用`DriverManager.getConnection()`方法,提供数据库URL、用户名和密码,创建数据库连接。 3. **创建Statement**:接着,通过`Connection`对象创建一个`Statement`实例,用于执行SQL语句。 4. **...
总结来说,"JAVA通过实体生成数据库表"是Java开发中提高效率的一种方式,它结合了反射和ORM技术,使得我们可以快速地根据业务需求创建数据库结构,减少了手动编写SQL的工作量。同时,这也促进了代码与数据库的一致性...
4. 数据库连接:使用DriverManager.getConnection()方法创建数据库连接。连接字符串通常包含数据库URL、用户名和密码。例如: ```java String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = ...
* 建立数据源是指创建一个可以供JAVA程序连接的数据库连接。 五、JAVA数据库编程的一般过程 * 加载驱动程序 * 连接数据库 * 执行SQL语句 * 关闭连接 六、JAVA数据库编程实例 * 查询数据库:使用Statement对象...