您的位置:首页 > 数据库

JDBC连接数据库_通过调用一个连接管理方法去创建连接

2018-03-01 00:01 661 查看
综合DDL,DML,DQL的连接数据库的语句,我们要从中抽象出共同的方法来创建一个连接管理方法。该方法仅仅适用于单线程的情况下使用!创建一个工具类(Dbutils.java):
package cn.tedu.jdbc.day01;import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;public class DbUtils {
 
 //改成静态变量,在方法区中只存储一份变量,是所有对象
 //共有的。
 //目前还有一个问题,就是数据库的数据不能写死,需要弄一个配置文件
 
  static String driver;
  static String url;
  static String username;
  static String password;
 
 //读取文件中的数据库连接参数(消除软件中的硬编码)
 //把四个参数写到文件中去(一般我们习惯把配置文件放到resource中去
 //创建db.properties,java中用的扩展名,尾部不能有空格分号。)
 //一句话将db.properties读成map, 
  
 //读取文件中的数据库连接参数
  static {
   try {
    //初始化静态属性
    //1.利用Properties读取配置文件
    Properties cfg = new Properties();
    //2.从配置文件中查找相应参数值
    InputStream in = DbUtils.class.
      getClassLoader().getResourceAsStream("db.properties");
    cfg.load(in);
    System.out.println(cfg);
    //初始化连接参数
    driver = cfg.getProperty("jdbc.driver");
    url = cfg.getProperty("jdbc.url");
    username = cfg.getProperty("jdbc.username");
    password = cfg.getProperty("jdbc.password");           
   } catch (IOException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
   }   
  }
    
  //DbUtils.java
  /*
   * 严格的关闭数据库的方法
   * 关闭数据库的连接方法,封装复杂的关闭过程
   */
  public static void close(Connection conn) {
   if(conn!=null) {
    try {
     conn.close();
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  }
    
 /**
  * 封装创建数据库连接的过程
  * 简化数据库连接
  * @return
  * @throws
  *
  * 写成当前这个样子是有点缺点的
  */ 
 public static Connection getConnection(){
 /* //调一次方法创建4个变量,很浪费
  String driver = "oracle.jdbc.OracleDriver";
  String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
  String user = "zqk";
  String password = "zqk123";*/
  try {
   Class.forName(driver);
   Connection conn = DriverManager.getConnection(url,username,password);
   return conn;
  }catch(Exception e) {
   e.printStackTrace();
   //数据库连接不上得到一个异常,对调用者负责
   throw new RuntimeException(e);
  }
 }
}
——————————————————————————————————————————————————————————————

resource下面创建一个db.properties文件#db.propertiesjdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=zqk
jdbc.password=zqk123# paramter for BasicDataSource
initSize=2
maxActive=2————————————————————————————————————————————————————此时,通过调用连接管理方法来创建一个数据库的连接,来执行DQL语句package cn.tedu.jdbc.day01;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class Demo04 {
 public static void main(String[] args) throws Exception {
  //调用连接管理方法创建连接
  Connection conn = DbUtils.getConnection();
  Statement st = conn.createStatement();
  String sql = "select * from robin_demo_zqk";
  ResultSet rt = st.executeQuery(sql);
  while(rt.next()) {
   int id = rt.getInt("id");
   String name = rt.getString("name");
   System.out.println(id+":"+name);
  }
  conn.close();
 }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JDBC
相关文章推荐