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();
			}
	}
	
	}

 

 以上,就是一个数据库连接的完整操作了。

 

posted on 2016-12-25 14:10  LuxxXK  阅读(297)  评论(0)    收藏  举报