jdbc基础 (二) 通过properties配置文件连接数据库
来源:互联网 发布:php httprequest类 编辑:程序博客网 时间:2024/05/21 10:03
上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用。
因为jdbc对数据库的驱动加载、连接获取、释放资源的代码都是相同的,为了提高代码的复用性,我们可以写一个工具类,将数据库驱动加载、获取连接、资源释放的代码封装起来。同时,为了提高工具类的灵活性,可以将数据库的驱动、url、用户名、密码等信息以键值对的形式存放在properties文件中,工具类初始化时从配置文件中读取所要连接数据库的信息。当需要更改连接的数据库时,只需要更改配置文件即可,而不必改写工具类的代码。
下面是工具类代码的实现:
package com.cream.ice.jdbc;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class JdbcUtils { private static String driverName; private static String url; private static String user; private static String password; /* * 静态代码块,类初始化时加载数据库驱动 */ static { try { // 加载dbinfo.properties配置文件 InputStream in = JdbcUtils.class.getClassLoader() .getResourceAsStream("dbinfo.properties"); Properties properties = new Properties(); properties.load(in); // 获取驱动名称、url、用户名以及密码 driverName = properties.getProperty("driverName"); url = properties.getProperty("url"); user = properties.getProperty("user"); password = properties.getProperty("password"); // 加载驱动 Class.forName(driverName); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /* * 获取连接 */ public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } /* * 释放资源 */ public static void releaseResources(ResultSet resultSet, Statement statement, Connection connection) { try { if (resultSet != null) resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } finally { resultSet = null; try { if (statement != null) statement.close(); } catch (SQLException e) { e.printStackTrace(); } finally { statement = null; try { if (connection != null) connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { connection = null; } } } }}
这里dbinfo.properties文件中信息如下,读者可自行更改:
driverName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/jdbcuser=rootpassword=01050233
这里我们来举个例子使用工具类。我们写一个类JdbcCURD实现对特定数据库的增删改查操作,并在main函数中使用。
JdbcCURD.java代码如下:
package com.cream.ice.jdbc;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcCURD { private Connection connection; private Statement statement; private ResultSet resultSet; //更新操作 public void update(String sql) { try { connection = JdbcUtils.getConnection(); statement = connection.createStatement(); //可执行创建、修改、删除表,添加、删除、修改元组以及查询sql语句 statement.execute(sql); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.releaseResources(resultSet, statement, connection); } } //查询操作 public void Query(String sql) { try { connection = JdbcUtils.getConnection(); statement = connection.createStatement(); resultSet = statement.executeQuery(sql); while(resultSet.next()){ System.out.println("name:"+resultSet.getString("name")); System.out.println("id:"+resultSet.getString("Tid")); } } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.releaseResources(resultSet, statement, connection); } } //添加操作 public void addElement(String sql) { update(sql); } //删除操作 public void removeElement(String sql) { update(sql); } //创建一个表 public void createTable(String sql){ update(sql); } //删除一个表 public void dropTable(String sql){ update(sql); }}
我们来写一个main函数来测试:
package com.cream.ice.jdbc;import java.sql.SQLException;public class JdbcTest { public static void main(String[] args) throws ClassNotFoundException, SQLException { JdbcCURD curd=new JdbcCURD(); String sql = null; //添加表Teacher sql="create table Teacher (Tid char(9) primary key,name char(9) unique)"; curd.createTable(sql); //添加元组 sql = "insert into Teacher (Tid,name) values ('0001','Tom')"; curd.addElement(sql); //查询Teacher表 sql="select * from Teacher"; curd.Query(sql); //删除元组 sql="delete from Teacher where Tid='0001'"; curd.removeElement(sql); //删除表Teacher sql="drop table Teacher"; curd.dropTable(sql); }}
经测试,将在控制台输出下列信息:
name:Tomid:0001
与上一篇中对数据库的操作相比,从配置文件中读取要连接数据库的信息,大大提高了代码的复用性以及灵活性,省去了当更改数据库时还要更改代码的麻烦。
1 1
- jdbc基础 (二) 通过properties配置文件连接数据库
- jdbc基础 (二) 通过properties配置文件连接数据库
- jdbc基础 (二) 通过properties配置文件连接数据库
- 通过properties配置文件连接数据库
- 通过properties配置文件连接数据库
- jdbc通过配置文件连接数据库
- java通过配置文件jdbc.properties链接Oracle数据库工具类
- 通过JDBC连接数据库(二)
- java连接数据库(properties配置文件)
- 通过jdbc连接数据库
- 通过jdbc连接数据库
- 通过JDBC连接数据库
- 12.22-jdbc学习之二静态读取配置文件连接数据库
- JDBC 通过从properties配置文件获取信息得到orcale数据库接口
- spring的xml配置文件中获取jdbc.properties乱码导致连接数据库失败
- JDBC---连接数据库(配置文件)
- 如何通过JDBC连接MYSQL数据库(二)
- JDBC连接数据库基础
- 工具类
- OC基础—类的私有方法和私有变量
- HDOJ 还是畅通工程 1233
- UITableView基础 UITableView编辑,UITableViewCell自定义
- mac cornerstone could not contact repository to read the latest log entries
- jdbc基础 (二) 通过properties配置文件连接数据库
- poj 2078 Matrix
- 通过经度、纬度获取地址名称[JS实现]
- Error: String types not allowed (at 'layout_gravity' with value 'bottom/center_horizontal').
- return null; 和 return;有什么区别
- PHP OPENSSL 函数手册翻译备查 -- openssl_get_md_methods
- iOS开发中最有用关键的代码合集(2)
- 20 Tips for Better Naming
- 如何调用DLL (基于Visual C++6.0的DLL编程实现)