`
webdev2014
  • 浏览: 699466 次
文章分类
社区版块
存档分类
最新评论

java创建数据库

 
阅读更多

在这之前一直都是先在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个了,代码没做优化,如果你们觉得有用,优化就自己弄吧

分享到:
评论

相关推荐

    java 创建数据库

    8. **测试连接**:创建数据库后,可以尝试创建表、插入数据或执行其他数据库操作来验证连接是否正常。 9. **使用连接池**:在实际项目中,为了提高性能和管理数据库连接,通常会使用连接池(如C3P0、HikariCP或...

    java代码创建数据库

    在Java编程环境中,创建数据库是一项常见的任务,尤其对于开发基于Java的数据驱动应用程序来说。本教程将详细介绍如何使用Java代码创建SQL Server数据库。首先,我们需要理解Java中的JDBC(Java Database ...

    java各种数据库jar包

    通过这个驱动,开发者可以在Java应用中创建数据库连接,执行SQL语句,处理结果集等。确保将这个驱动添加到项目的类路径中,以便Java程序可以找到并使用它。 3. **sqljdbc4.jar** 是针对Microsoft SQL Server的JDBC...

    java连接数据库 java 数据库连接 数据库 java连接

    2. **建立连接**:通过`DriverManager.getConnection()`方法创建数据库连接。示例代码: ```java Connection conn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=...

    java数据库驱动包

    开发者可以使用这个驱动创建数据库连接,执行SQL操作,实现数据的增删改查。 3. **DB2 JDBC驱动**: DB2是由IBM开发的企业级数据库系统,支持多种操作系统平台。DB2提供了JDBC驱动,允许Java应用程序与DB2数据库...

    java配置数据库jar包操作

    Java 配置数据库 Jar 包操作 Java 配置数据库 Jar 包操作是指在 Java 项目中将 MySQL 数据库的 Jar 包导入到项目中,以便使用 JDBC 连接数据库的操作。下面是关于 Java 配置数据库 Jar 包操作的详细知识点: 什么...

    java操作数据库 导出excel

    在Java程序中,你需要加载对应的数据库驱动,建立数据库连接,创建Statement或PreparedStatement对象来执行SQL语句,然后获取并处理结果集。 例如,要从数据库中获取数据,你可以这样做: ```java Class.forName(...

    Java根据实体创建Mysql数据库表

    - 当应用启动时,Hibernate会读取配置,扫描实体类,然后根据元数据生成相应的SQL语句,执行这些语句以创建数据库表。 6. **注意事项**: - 数据库表的命名策略可以通过`@Table(name = "table_name")`自定义,...

    java 建立数据库文件索引

    在Java编程环境中,创建数据库文件索引是一项关键任务,它能极大地提高数据检索效率。这里的“文件索引”指的是在数据库中为文件目录下的文件创建一个结构化的引用,使得我们可以通过搜索索引来快速定位和访问文件。...

    java 连接数据库实现用户登录功能

    在Java编程中,连接数据库以实现用户登录功能是一项基础但重要的任务。这通常涉及到数据库的交互,如查询、验证用户凭据等。本教程将详细解释如何使用Java连接Oracle数据库来实现这一功能。 首先,我们需要了解Java...

    用JAVA将数据库导入csv程序

    本项目关注的是如何使用Java编程语言将数据库中的记录导出为CSV(Comma Separated Values)格式的文件。CSV因其通用性和易于处理的特性,被广泛应用于数据交换。 首先,让我们深入了解CSV文件格式。CSV是一种简单的...

    Accp8.0\S2\使用Java实现数据库编程 第二章

    在“Accp8.0\S2\使用Java实现数据库编程 第二章”这一主题中,我们聚焦于如何利用Java语言进行数据库编程。这通常涉及到Java的JDBC(Java Database Connectivity)技术,它是Java平台的标准接口,允许Java应用程序...

    java连接数据库代码

    - 建立连接:使用`DriverManager.getConnection()`方法创建数据库连接。 - 创建Statement/PreparedStatement对象:用于执行SQL语句。 - 执行SQL:调用Statement/PreparedStatement的`executeQuery()`或`...

    【经典】Java数据库编程 JAVA跟数据库连接源代码

    Java数据库编程是软件开发中的重要一环,尤其是在企业级应用中,数据的存储和处理是核心功能。本教程主要关注Java如何与数据库进行交互,特别是使用JDBC(Java Database Connectivity)进行连接和操作。以下是对各个...

    java连接数据库并且向数据库插入数据

    至于`mytest.sql`文件,这通常包含创建数据库表或其他SQL脚本。开发者可以使用这些脚本来初始化数据库结构。例如,它可能包含了创建`users`表的语句: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY ...

    java连接数据库包、数据报表包

    在Java编程中,连接数据库和生成数据报表是两个核心任务,尤其在企业级应用开发中至关重要。本压缩包包含的资源旨在提供必要的库文件,帮助开发者实现这些功能。以下是相关知识点的详细介绍: 1. **Java数据库连接...

    java数据库连接方法(一)

    2. **建立连接**:使用`DriverManager.getConnection()`方法,提供数据库URL、用户名和密码,创建数据库连接。 3. **创建Statement**:接着,通过`Connection`对象创建一个`Statement`实例,用于执行SQL语句。 4. **...

    JAVA通过实体生成数据库表

    总结来说,"JAVA通过实体生成数据库表"是Java开发中提高效率的一种方式,它结合了反射和ORM技术,使得我们可以快速地根据业务需求创建数据库结构,减少了手动编写SQL的工作量。同时,这也促进了代码与数据库的一致性...

    纯java连接数据库

    4. 数据库连接:使用DriverManager.getConnection()方法创建数据库连接。连接字符串通常包含数据库URL、用户名和密码。例如: ```java String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = ...

    JAVA数据库编程(PPT)

    * 建立数据源是指创建一个可以供JAVA程序连接的数据库连接。 五、JAVA数据库编程的一般过程 * 加载驱动程序 * 连接数据库 * 执行SQL语句 * 关闭连接 六、JAVA数据库编程实例 * 查询数据库:使用Statement对象...

Global site tag (gtag.js) - Google Analytics