JDBC(2)_使用配置文件来配置JDBC连接数据库
1.管理数据库连接的Class
代码如下:
/*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/
package jdbcTest; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; import java.io.InputStream; /* * 使用配置文件来配置JDBC连接数据库 * 该类用来管理数据库连接 */ public class DBUtil { //静态属性,用于DriverManager.getConnection(url,user,psw);中的三个参数 private static String url; private static String user; private static String psw; //静态块 static{ try{ //读取配置文件 Properties prop=new Properties(); /* * 此种写法是以后更加推荐的一种相对路径的处理方法。 * 要读取的文件和Class处于同一目录下 */ InputStream is=JDBCDemo3.class.getClassLoader().getResourceAsStream("config2.properties"); /* * 这种写法:class.getResource/getResourceAsStream也可以找到资源 * InputStream is=JDBCDemo3.class.getResourceAsStream("config.properties"); */ prop.load(is); is.close();//输入流用完后,就可以关掉了 String driver=prop.getProperty("driver"); url=prop.getProperty("url"); user=prop.getProperty("user"); psw=prop.getProperty("psw"); //注册驱动 Class.forName(driver); System.out.println(driver+","+url+","+user+","+psw); }catch(Exception e){ e.printStackTrace(); } } //获取连接 public static Connection getConnection() throws Exception{ /* * 通过DriverManager创建一个数据库的连接并返回 */ try{ return DriverManager.getConnection(url,user,psw); }catch(Exception e){ e.printStackTrace(); //通知创建者,创建连接时出错 throw e; //注意,如果采用return null;如果外界没有对null进行则会引发空指针异常 } } //关闭指定的连接 public static void closeConnection(Connection conn){ try{ if(conn!=null){ conn.close(); } }catch(Exception e){ e.printStackTrace(); } } }
2.配置文件config.properties
driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@localhost:1521:orcl user=SYSTEM psw=Suzhou123
/*
* java.util.Properties
* Properties类用于读取properties文件
* 使用该类,可以类似Map的形式读取配置文件内容
* 文件格式类似:
* key=value,即等号左边key,等号右边为value
*/
3.读取数据库操作
package jdbcTest;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
/*
* 使用配置文件来配置JDBC连接数据库
* 该类用来管理数据库连接
*/
public class JDBCDemo3 {
public static void main(String[] args) {
try{
Connection conn=DBUtil.getConnection();
System.out.println("数据库已连接成功");
/*
* 通过Connection创建Statement
* 用来执行sql语句
*/
Statement stmt=conn.createStatement();
//要执行的sql语句
String sql="SELECT * FROM STUDENT";
/*
* 使用executeQuery来执行DQL语句,并且查询后会得到一个查询结果集
*/
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
String Std_name=rs.getString("NAME");
int Std_age=rs.getInt("AGE");
String Std_sex=rs.getString("SEX");
int Std_no=rs.getInt("SNO");
System.out.println(Std_name+", "+Std_age+", "+Std_sex+", "+Std_no);
}
/*
* 数据库资源有限,用完一个资源后就关闭,会节约数据库资源
*/
rs.close();
/*
* 当不再通过Statement执行其他sql时,就应当及时关闭Statement,
* 以释放JDBC与数据库的资源占用
*/
stmt.close();
//使用后关闭连接
DBUtil.closeConnection(conn);
}catch(Exception e){
e.printStackTrace();
}
}
}
以上,就是一个数据库连接的完整操作了。
浙公网安备 33010602011771号