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

综合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.properties
jdbc.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();
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值