`
yyys8517750
  • 浏览: 143038 次
  • 性别: Icon_minigender_1
  • 来自: 岳阳
社区版块
存档分类
最新评论

jdbc

 
阅读更多

2.4、JDBC程序的代码模板
       开发一个JDBC应用程序,基本需要以下步骤:
(1)、把JDBC驱动类装载入Java虚拟机中,为此,可使用Class.forName()方法,此方法将给定的类加载到Java虚拟机中。如果系统中不存在给定的类,则会引发异常,异常类型为ClassNotFoundException。
         Class.forName(“JDBC驱动类的名称”);

 

(2)、加载驱动,并与数据库建立连接。DriverManager类跟踪已注册的驱动程序,当调用getConnection()方法时,它会搜索整个驱动程序列表,直到找到一个能够连接至数据连接字符串中指定的数据库的驱动程序。加载此驱动程序之后,将使用DriverManager类的getConnection()方法建立与数据库的连接。此方法接收三个参数,分别表示URL、用户名和密码。用户名和密码是可选的。
         Connection conn = DriverManager.getConnection(数据库连接字符串,数据库用户名,密码);

 

(3)、发送SQL语句,并得到结果集。一旦连接建立,就使用该连接创建Statement接口的实例,并将SQL语句传递给它所连接的数据库,并返回类型为ResultSet的对象,它包含执行SQL查询的结果。
         Statement stmt = conn.createStatement();

         ResultSet rs = stmt.executeQuery(select a,b,c from table);

 

(4)、处理结果。使用ResultSet对象的next()方法将光标(cursor)指向下一行。最初光标位于第一行之前,因此第一次调用next()方法将光标置于第一行上。如果到达结果集的末尾,则ResultSet的next()方法会返回false。方法getXXX提供了获取当前行中某列值的途径,列名或列号可用于标识要从中获取数据的列。例如:如果数据表中第一列的列名为a,存储类型为整型,则可以使用两种方法获取存储在该列中的值,如:int x = rs.getInt(“a”);或者:int x = rs.getInt(1);

处理结果的代码示例:
         while(rs.next()){

           int x = rs.getInt(“a”);

           String s = rs.getString(“b”);

           float f = rs.getFloat(“c”);

}

 

JDBC程序的代码模板:

Java代码 复制代码 收藏代码
  1. //把JDBC驱动类装载入Java虚拟机中   
  2. Class.forName(JDBC驱动类的名称);   
  3.   
  4. //加载驱动,并与数据库建立连接,其中数据库连接字符串用来标识数据库   
  5. Connection conn = DriverManager.getConnection(数据库连接字符串,数据库用户名,密码);   
  6.   
  7. //执行SQL语句,并得到结果集   
  8. Statement stmt = conn.createStatement();   
  9. ResultSet rs = stmt.executeQuery(“select a,b,c from table”);   
  10.   
  11. //处理结果   
  12. while(rs.next()){   
  13.   int x = rs.getInt(“a”);   
  14.   String s = rs.getString(“b”);   
  15.   float f = rs.getFloat(“c”);   
  16. }  
//把JDBC驱动类装载入Java虚拟机中
Class.forName(JDBC驱动类的名称);

//加载驱动,并与数据库建立连接,其中数据库连接字符串用来标识数据库
Connection conn = DriverManager.getConnection(数据库连接字符串,数据库用户名,密码);

//执行SQL语句,并得到结果集
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(“select a,b,c from table”);

//处理结果
while(rs.next()){
  int x = rs.getInt(“a”);
  String s = rs.getString(“b”);
  float f = rs.getFloat(“c”);
}

  

2.5、什么是JDBC URL

JDBC URL提供了一种标识数据库的方法,可以使相应的JDBC驱动程序能识别数据库并与之建立连接。
JDBC URL的标准语法由以下三个部分组成,各部分间用冒号分隔。
Jdbc:<子协议>:<子名称>

JDBC URL的三个部分可以分解如下:
其中jdbc-----代表协议。
<子协议>----驱动程序名或数据库连接机制的名称。
<子名称>----一种标识数据库的方法。


JDBC URL示例:
jdbc:odbc:news

jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=news

 

3、  Statement接口和PreparedStatement接口中的方法
ResultSet executeQuery(String sql):可以执行SQL查询并获取到ResultSet对象。
int executeUpdate(String sql):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数。
boolean execute(String sql):这是一个最为一般的执行方法,可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet。


4、  为什么要关闭Statement对象以及数据库连接
如果不关闭Statement对象,它们会一直占用服务器资源,直到Java垃圾收集程序来回收它。作为一种好的编程风格,应在不需要Statement对象时显示地关闭它们,这将立即释放服务器资源,有助于避免潜在的内存问题。同样,使用完数据库连接后,就应关闭它,释放连接所占用的数据库资源。


5、  PreparedStatement语句
PreparedStatement接口继承自Statement接口,PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率。PreparedStatement实例包含已编译的SQL语句,SQL语句可具有一个或多个输入参数。这些输入参数的值在SQL语句创建时未被指定,而是为每个输入参数保留一个问号(“?”)作为占位符。


PreparedStatement pstmt = con.prepareStatement(“update table set a=? where b=?”);

在执行PreparedStatement对象之前,必须设置每个输入参数的值。可通过setXXX方法来完成,其中XXX是与该参数相应的类型。例如,如果参数具有Java类型long,则使用的方法就是设置给该参数的值。例如,以下代码将第一个参数设为长整型值123456789,第二个参数设为整型值10:
pstmt.setLong(1,123456789);

pstmt.setInt(2,10);

 

由于PreparedStatement对象已预编译过,所以其执行速度要快于Statement对象,因此,多次执行的SQL语句应被创建为PreparedStatement对象,以提高效率。
 

6、  格式化时间
SimpleDateFormat hmFromat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

hmFromat.format(new Date());

 

7、 步骤

 1)调用Class类的forName()方法,加载并注册数据库驱动。
 2)调用DriverManager类的getConnection()方法,建立到数据库的连接
 3)调用Connection对象的createStatement()方法,访问数据库
 4)调用Statement对象的executeQuery()方法得到ResultSet对象。
 5) 调用ResultSet对象的getObject()方法,处理结果。
 6)释放资源(连接应该尽可能晚建立,释放资源应尽可能早释放。)

 

8、 代码

Java代码 复制代码 收藏代码
  1. import java.sql.Connection;      
  2. import java.sql.DriverManager;      
  3. import java.sql.ResultSet;      
  4. import java.sql.SQLException;      
  5. import java.sql.Statement;      
  6.      
  7. /**    
  8.  *Jdbc工具类    
  9.  */     
  10. public class JdbcUtils {      
  11.     private static String url = "jdbc:mysql://localhost:3306/test";      
  12.     private static String user = "root";      
  13.     private static String password = "123456";      
  14.      
  15.     private JdbcUtils() {    }      
  16.     static {      
  17.         try {      
  18.             Class.forName("com.mysql.jdbc.Driver");      
  19.         } catch (ClassNotFoundException ex) {      
  20.             throw new ExceptionInInitializerError(ex);      
  21.         }      
  22.     }      
  23.     public static Connection getConnection() throws SQLException{      
  24.         return DriverManager.getConnection(url, user, password);      
  25.     }      
  26.     public static void free(Connection conn, Statement st, ResultSet rs) {      
  27.         try {      
  28.             if (rs != null) {      
  29.                 rs.close();      
  30.         }      
  31.         } catch (SQLException ex) {      
  32.             System.out.println(ex.toString());      
  33.         } finally {      
  34.             try {      
  35.                 if(st!=null) {      
  36.                     st.close();      
  37.                 }      
  38.             } catch (SQLException ex) {      
  39.                 System.out.println(ex.toString());      
  40.             } finally {      
  41.                 try {      
  42.                     if(conn!=null){      
  43.                         conn.close();      
  44.                     }      
  45.                 } catch (SQLException ex) {      
  46.                     System.out.println(ex.toString());      
  47.                 }      
  48.             }      
  49.         }      
  50.     }      
  51. }    
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
  
/**  
 *Jdbc工具类  
 */  
public class JdbcUtils {   
    private static String url = "jdbc:mysql://localhost:3306/test";   
    private static String user = "root";   
    private static String password = "123456";   
  
    private JdbcUtils() {    }   
    static {   
        try {   
            Class.forName("com.mysql.jdbc.Driver");   
        } catch (ClassNotFoundException ex) {   
            throw new ExceptionInInitializerError(ex);   
        }   
    }   
    public static Connection getConnection() throws SQLException{   
        return DriverManager.getConnection(url, user, password);   
    }   
    public static void free(Connection conn, Statement st, ResultSet rs) {   
        try {   
            if (rs != null) {   
                rs.close();   
	    }   
        } catch (SQLException ex) {   
            System.out.println(ex.toString());   
        } finally {   
            try {   
                if(st!=null) {   
                    st.close();   
                }   
            } catch (SQLException ex) {   
                System.out.println(ex.toString());   
            } finally {   
                try {   
                    if(conn!=null){   
                        conn.close();   
                    }   
                } catch (SQLException ex) {   
                    System.out.println(ex.toString());   
                }   
            }   
        }   
    }   
}  
Java代码 复制代码 收藏代码
  1. import java.sql.Connection;      
  2. import java.sql.ResultSet;      
  3. import java.sql.SQLException;      
  4. import java.sql.Statement;      
  5.      
  6. public class Test {      
  7.      
  8.     public static void main(String[] args) {      
  9.         optimize();      
  10.     }      
  11.      
  12.     public static void optimize() {      
  13.         Connection conn = null;      
  14.         Statement st = null;      
  15.         ResultSet rs = null;      
  16.         try {      
  17.             conn = JdbcUtils.getConnection();      
  18.             st = conn.createStatement();      
  19.             rs = st.executeQuery("Select * from Students;");      
  20.             while (rs.next()) {      
  21.                 System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" + rs.getObject(3) + "\t" + rs.getObject(4));      
  22.             }      
  23.         } catch (SQLException ex) {      
  24.             System.out.println(ex.toString());      
  25.         } finally {      
  26.             JdbcUtils.free(conn, st, rs);      
  27.         }      
  28.     }      
  29. }  
分享到:
评论

相关推荐

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    《深入理解JDBC Driver 3.0:聚焦SQL Server JDBC》 在IT行业中,数据库连接是应用程序与数据存储之间的桥梁,而JDBC(Java Database Connectivity)则是Java平台中用于访问数据库的标准API。JDBC Driver 3.0是针对...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    SQL Server驱动包是用于Java应用程序通过JDBC(Java Database Connectivity)接口与Microsoft SQL Server数据库进行交互的必备组件。本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何...

    sqljdbc和sqljdbc4 sqlserver最新驱动

    SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...

    Spring Data JDBC与JDBC的区别

    Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...

    mysql jdbc 驱动 适用于5.6版本及以下数据库

    mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及以下数据库 mysql jdbc 驱动 适用于5.6版本及...

    mysql jdbc 驱动 适用于5.7及以上版本数据库

    mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...

    sqljdbc41、sqljdbc42的官方jar包

    在Java编程语言中,JDBC(Java Database Connectivity)是一个核心的API,用于连接Java应用程序与各种类型的数据库。这里我们关注的是两个特定版本的Microsoft SQL Server的JDBC驱动:sqljdbc41.jar和sqljdbc42.jar...

    Dm7JdbcDriver16.jar Dm7JdbcDriver17.jar Dm7JdbcDriver18.jar

    在给定的压缩包文件中,包含了三个不同版本的达梦JDBC驱动,分别是Dm7JdbcDriver16.jar、Dm7JdbcDriver17.jar和Dm7JdbcDriver18.jar。 1. **JDBC驱动介绍**: JDBC是Java中用于与各种数据库进行交互的标准接口,它...

    自学jdbc心得体会

    JDBC 基础知识点 JDBC(Java Database Connectivity)是一种Java标准的数据库连接API,它允许Java程序访问各种关系数据库。下面是JDBC的基础知识点: 一、JDBC原理概述 * JDBC是一套协议,由Sun定义的一组接口,...

    sql server2000 jdbc

    SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的一种重要方式。JDBC(Java Database Connectivity)是Java API,允许Java应用程序通过Java虚拟机(JVM)与各种数据库建立连接。在...

    Access_JDBC30

    标题 "Access_JDBC30" 暗示了这是一个与Microsoft Access数据库相关的Java JDBC驱动程序。JDBC(Java Database Connectivity)是Java编程语言中用于连接和操作数据库的标准接口。这个jar包,"Access_JDBC30.jar",...

    kingbaseV8 jdbc 驱动

    KingbaseV8 JDBC驱动是连接KingbaseV8数据库的重要组件,允许Java应用程序通过JDBC(Java Database Connectivity)接口与数据库进行交互。JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了...

    sqljdbc42.jar、sqljdbc41.jar 更新日期2017-12-21

    标题中的"sqljdbc42.jar、sqljdbc41.jar 更新日期2017-12-21"指的是Microsoft SQL Server的Java Database Connectivity (JDBC) 驱动的两个不同版本,它们分别对应于Java SE 7和Java SE 8的兼容性。JDBC驱动是Java...

    sqljdbc4(sqlserver jdbc驱动下载和安装)

    在IT行业中,数据库是至关重要的组成部分,而SQL Server作为一款广泛应用的关系型数据库管理系统,它的连接与操作离不开JDBC(Java Database Connectivity)驱动。本篇将详细介绍如何下载和安装sqljdbc4,这是...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    标题中的"sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar"是指Microsoft SQL Server为Java应用程序提供的Java Database Connectivity (JDBC)驱动程序。这些JAR文件是数据库连接的关键,允许Java代码与SQL Server进行...

    java jdbc 需要包

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...

    access的jdbc驱动

    Access的JDBC驱动是Java数据库连接(Java Database Connectivity, JDBC)的一种实现,它允许Java程序与Microsoft Access数据库进行交互。在JDK 1.8之后,Oracle公司不再默认提供对ODBC(Open Database Connectivity...

    sqljdbc 3.0及4.0

    `sqljdbc`是Microsoft提供的一个驱动程序,使得Java应用程序能够与SQL Server数据库进行交互。在这个场景中,我们关注的是`sqljdbc 3.0`和`4.0`版本,这两个版本都是专门为Java设计的,用于连接SQL Server 2000。 `...

    Windowssever 2016 连sqlsever的jar包 JDK1.7/1.8 sqljdbc41/sqljdbc42

    `sqljdbc41`和`sqljdbc42`是SQL Server特有的一套JDBC驱动,分别对应JDBC 4.1和JDBC 4.2标准,适用于JDK 7和JDK 8。 1. **JDBC 4.1 (sqljdbc41.jar)**:这个版本的驱动支持JDK 7,它引入了新的特性,如异步操作、...

Global site tag (gtag.js) - Google Analytics