数据库连接jdbc

来源:互联网 发布:易迅抢q币软件 编辑:程序博客网 时间:2024/04/30 19:47

1 添加驱动的方法(共三种):

A)  DriverManager.registerDriver(new com.mysql.jdbc.Driver());
B)  System.setProperty("jdbc:drivers","com.mysql.jdbc.Driver");
C)  Class.forName("com.mysql.jdbc.Driver");  //this method is Recommended
     C) 的原理:主要的原理是: Class.forName() 方法把类com.mysql.jdbc.Driver 加载到虚拟机中,当类加载到虚拟机中时,类中的静态初,在静态代码中,其实就是调用A)

始化代码就会被调用,完成数据库驱动类的注册。

2 连接的url 格式:
   格式 :JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值&...
   例如 :"jdbc:mysql://localhost:3306/jdbc" Mysql 的url

 

例子:

package alf.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class JdbcUtils {
 private static String url = "jdbc:mysql://localhost:3306/jdbc";
 private static String user = "root";
 private static String password = "";

 private JdbcUtils() {

 }

 static {
  try {
   Class.forName("com.mysql.jdbc.Dirver");
  } catch (ClassNotFoundException e) {

   throw new ExceptionInInitializerError(e);
  }
 }
 
 public static Connection getConnection() throws SQLException{
  return DriverManager.getConnection(url,user,password);
 }
 
 public static void free(ResultSet rs, Statement st, Connection conn){
  try{
   if(rs != null)
    rs.close();
  } catch (SQLException e){
   e.printStackTrace();
  } finally{
   try{
    if(st != null)
       st.close();
   } catch (SQLException e){
    e.printStackTrace();
   } finally{
    try{
     if(conn != null)
      conn.close();
    } catch(SQLException e){
     e.printStackTrace();
    }
   }
  }
  
 }

}

 

cliet code
static void template() throws Exception{
Connection conn = null;
Statement st = null;
ResultSet rs = null;
ResultSet
try{
  // 1 regist driver
  // 2 create connection
  conn = JdbcUtils.getConnection();
  // 3 create statement
  st = conn.createStatement();
  // 4 execute sql
  rs = st.executeQuery("select * form 数据库表名");
  // 5 to do something
  while(rs.next()){
     // to do
  }
}finally{
  JdbcUtils.free(rs,st,conn);
}