wait 发表于 2016-1-13 21:30:00

JDBC访问数据库的方法

      JDBC(Java DataBase Connectivity,Java数据库连接)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句、访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下几个步骤:       (1)加载JDBC驱动器。将数据库的JDBC驱动加载到classpath中,在基于JavaEE的Web应用开发过程中,通常要把目标数据库产品的JDBC驱动复制到WEB-INF/lib下。      (2)加载JDBC驱动,并将其注册到DriverManager中。一般使用反射Class.forName(StringdriveName)。      (3)建立数据库连接,取得Connection对象。一般通过DriverManager.getConnection(url,username,passwd)方式实现,其中,url表示连接数据库的字符串,username表示连接数据库的用户名,passwd表示连接数据库的密码。      (4)建立Statement对象或是PreparedStatement对象。      (5)执行SQL语句。      (6)访问结果集ResultSet对象。      (7)依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放掉所占用的资源。例如:rs.close(),con.close()等。为什么要这么做呢?原因在于JDBC驱动在底层通常都是通过网络IO实现SQL命令与数据传输的。       以上主要介绍了访问数据库的基本步骤,在具体编写访问数据库的程序的时候还需要注意对异常进行处理。大多数JDBC操作都会抛出SQLException,以连接mysql为例介绍JDBC的使用方法:首先,创建Employee表。create table Employee(
    id int primary key,
    name varchar(20),
    age int
);
   其次,创建一个示例程序,如下所示。import java.sql.*;
public class Test{   
    public static void main(String[] args) throws Exception {
           String user = "user1";
               String password = "pwd1";
               String url = "jdbc:mysql://localhost:3306/Test";
               String driver = "com.mysql.jdbc.Driver";
               Connection con = null;
               Statement stmt = null;
               ResultSet rs = null;
               try{
                     Class.forName(driver);
                     con = DriverManager.getConnection(url, user, password);
                     stmt = con.createStatement();                     
                     stmt.execute("insert into Employee values(1,'James1',25)");
                     stmt.execute("insert into Employee values(2,'James2',26)");
                     rs=stmt.executeQuery("select * from Employee");
                     while(rs.next()){                     
                        System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getInt(3));
                     }
               }
               catch(SQLException e1){               
                     e1.printStackTrace();
               }finally{         
             try{
               if(rs != null) rs.close();
               if(stmt != null) stmt.close();
               if(con != null) con.close();
             } catch(SQLException e) {
                  System.out.println(e.getMessage());
             }            
         }
    }
} 程序运行结果为:
1 James1 252 James2 26
页: [1]
查看完整版本: JDBC访问数据库的方法