JAVA基础知识回顾-----JDBC基础-----随想随写

JDBC
名词解释:Java DataBase Connection JAVA数据库连接

1.为什么要使用JDBC?(JDBC的优缺点分析)
优点:
     ①:JDBC支持不同的关系型数据库,使得程序的可移植性大大增加
     ②:JDBC面向对象,可以将连接操作封装,以后备用,提高代码的复用性
     ③:JDBC简单(据说以前在这要花费很多心力...)
缺点:
     ①:访问速度受到了一定影响(毕竟封装,不是直接去操作数据库)
     ②:JDBC结构中包含了不同厂家的产品,给更改数据源带来了很大麻烦

2.JDBC中用到的几大类或接口:
     DriverManager(类):负责加载驱动
     Connection(接口):获得数据库的连接
     Statement/PrepareStatement(接口):执行SQL语句,并返回结果集
     ResultSet(接口):保存结果集
     SQLException(类):有关数据库连接的异常

3.编写JDBC的步骤:
    a) 导包(包含JDBC类)
    b) 加载驱动
    c) 建立连接
    d) 执行SQL语句,与数据库交互
    e) 关闭连接

4.JDBC驱动程序分类
     ①:采用JDBC-ODBC桥接模式,将JDBC翻译成ODBC,然后使用ODBC驱动程序与
数据库进行通讯
     ②:由部分Java程序和部分本地代码组成,利用开发商提供的本地库函数来直接
与数据库进行通讯
     ③:纯Java程序,需要一个中间服务器
     ④:纯Java的驱动程序(通常使用的方法)

5.Oracle数据的驱动程序
     classes14.jar

6.完整代码

package com.sixgod.dbutils;

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

public class DbUtils {

 //字段
 private static final String url="jdbc:oracle:thin:@10.25.112.6:1521:ahui";//数据库URL
 private static final String user="RONG";//账户
 private static final String password="123456";//密码

 private static DbUtils  studentDbUtils=null;//实例化本类对象
 

 //构造器私有化
 private DbUtils (){ 
  //1.创建Oracle的驱动对象
    try {
     Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
 }
 

 
 //连接数据库
 public static Connection getConnection(){
  Connection conn=null;
  if(studentDbUtils==null){
   studentDbUtils=new DbUtils ();
  }
  try {  
   //2.连接数据库
   conn=DriverManager.getConnection(url, user, password);
   
  }catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return conn;
 }
 
 //关闭PreparedStatement
 public static void closePreparedStatement(PreparedStatement pstmt){
  try {
   if(pstmt!=null){
    pstmt.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 //关闭ResultSet
 public static void closeResultSet(ResultSet rs){
  
  try {
   if(rs!=null){
    rs.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 //关闭Connection
 public static void closeConnection(Connection conn){
  
  try {
   if(conn!=null){
    conn.close();
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
// ==================================
// 主方法:测试数据库是否连接成功
// ==================================
// public static void main(String[] args){
//  System.out.println(getConnection());
// }

}


 

猜你喜欢

转载自ye-wolf.iteye.com/blog/2304293