Sun公司为Java与数据库之间提供了一套统一的接口API,使用这套API就可以通过数据库厂商提供的驱动类Driver才操作数据库。而这套API就是这里所说的API.

Database、jdbc、java-application三者之间的关系:

 

连接数据库的基本步骤:

1  加载驱动

Class.forName("com.mysql.jdbc.Driver");

2  获取连接,建立连接

DriverManager.getConnection(url,user,password);  //分别是数据库服务器地址、用户名、密码

3  创建执行SQL的Statement

connection.createStatement();

4  执行语句返回结果集

resultSet=statement.executeQuery(sql);       //sql为Select语句

5  处理结果集

5.1 通过resultRet的next()方法来判断得到的记录集中是否还有数据

5.2 若有数据,可以通过resultSet的getInt(index)/getInt(columnName)、getString(index)/getString(columnName)等方法来获取对应的数据

 

6  释放资源(很重要.连接对于数据库是稀有资源.不按时释放会导致最后内存减少而宕机)

resultSet 、statement、 connection依先后顺序关闭

 1 try {
 2             if(resultSet!=null){
 3                 try {
 4                     resultSet.close();
 5                 } catch (SQLException e) {
 6                     e.printStackTrace();
 7                 }
 8             }
 9             if(statement!=null){
10                 try {
11                     statement.close();
12                 } catch (SQLException e) {
13                     e.printStackTrace();
14                 }
15             }
16         } catch (Exception e) {        
17         }
18         finally {
19             if(connection!=null){
20                 try {
21                     connection.close();
22                 } catch (SQLException e) {
23                     e.printStackTrace();
24                 }
25             }    
26         }
27 }

以下给演示基本的JDBC模板。下面有两个类:一个是模板类、一个是测试类。

模板类Jdbc.java

package com.vivi.jdbc;

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

public class Jdbc {
    
    //参数定义
    private static String url="jdbc:mysql:///mytest";
    private static String user="root";
    private static String password="12345";
    
    private Jdbc(){}
    
    //加载驱动
    static{        
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //获取连接
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }
    
    //释放连接
    public static void RealesaeConnectiong(ResultSet resultSet,Statement statement,Connection connection){
        try {
            if(resultSet!=null){
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        } catch (Exception e) {        
        }
        finally {
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }    
        }                        
    }

}

下面是测试类JdbcTest.java

package com.vivi.jdbc;

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

public class jdbcTest {

    public static void main(String[] args) {
        Temple();
    }
    
    public  static void  Temple() {
        ResultSet resultSet=null;
        Statement statement=null;
        Connection connection=null;
        
        try{
            
            connection=Jdbc.getConnection();
            statement=connection.createStatement();
            String sql="SELECT * FROM users";
            resultSet=statement.executeQuery(sql);
            while(resultSet.next()){
                System.out.println(resultSet.getInt(1)+":"+resultSet.getString(2)+":"+
                                    resultSet.getInt(3)+":"+resultSet.getDate(4));
                
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }finally{
            Jdbc.RealesaeConnectiong(resultSet, statement, connection);
        }
    }
}

测试结果:

1:xiaozhang:13:2001-12-23
2:xiaohong:14:2003-12-23
3:xiaofang:14:2003-12-23

posted on 2015-09-14 15:19  yellowSkins  阅读(495)  评论(0)    收藏  举报