`
dyllove98
  • 浏览: 1409291 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39181
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80259
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133380
社区版块
存档分类
最新评论

JDBC一般流程及优化过程

 
阅读更多
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Base {
     
   /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        template(); 
 
    }
    static void template() throws SQLException, ClassNotFoundException {
        // 1.注册驱动
        //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
        Class.forName("com.mysql.jdbc.Driver");// 推荐方式
 
        // 2.建立连接
        String url = "jdbc:mysql://localhost:3306/jdbc";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);
 
        // 3.创建语句
        Statement st = conn.createStatement();
 
        // 4.执行语句
        ResultSet rs = st.executeQuery("select * from user");
 
        // 5.处理结果
        while (rs.next()) {
            System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t"
                    + rs.getObject(3) + "\t" + rs.getObject(4));
        }
 
        // 6.释放资源
        rs.close();
        st.close();
        conn.close();
    }
}

 

由上面的代码可知:JDBC一般的处理过程分为六个步骤

  1. 注册驱动

  2. 建立连接

  3. 创建语句

  4. 执行语句

  5. 处理结果

  6. 释放资源

 

上面的代码不够严谨,需要优化。

优化后的代码如下:抽出可重复性使用的代码工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public final class JdbcUtils {
    private static String url = "jdbc:mysql://localhost:3306/jdbc";
    private static String user = "root";
    private static String password = "123456";
 
    private JdbcUtils() {
    }
        //JVM加载类时就进行驱动注册
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        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 {
                if (conn != null)
                    try {
                        conn.close();
                    catch (SQLException e) {
                        e.printStackTrace();
                    }
            }
        }
    }
}

 

优化模板代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Base {
 
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        template(); 
 
    }
 
    static void template() throws Exception {
        Connection conn = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            // 2.建立连接
            conn = JdbcUtils.getConnection();
            // conn = JdbcUtilsSing.getInstance().getConnection();
            // 3.创建语句
            st = conn.createStatement();
 
            // 4.执行语句
            rs = st.executeQuery("select * from user");
 
            // 5.处理结果
            while (rs.next()) {
                // 参数中的1,2,3,4是指sql中的列索引
                System.out.println(rs.getObject(1) + "\t" + rs.getObject(2)
                        "\t" + rs.getObject(3) + "\t" + rs.getObject(4));
            }
        finally {
            JdbcUtils.free(rs, st, conn);
        }
 
    }

 

0
1
分享到:
评论

相关推荐

    jdbc连接池配置(优化连接速度)

    在IT行业中,数据库连接管理是应用系统性能优化的关键环节之一,而JDBC连接池就是解决这一问题的有效工具。本文将详细讲解JDBC连接池的工作原理、配置方法以及如何通过优化来提升连接速度。 JDBC(Java Database ...

    优化JDBC方法功略

    本文将详细介绍三个主要的JDBC性能优化技巧,并提供了一些通用的准则,以帮助开发者提高JDBC应用程序的运行效率。 首先,正确使用数据库MetaData方法是关键。MetaData方法通常用于获取数据库表、列、索引等元数据...

    JDBC访问数据库的优化策略

    优化JDBC访问数据库的策略涉及多个层面,包括合理的连接模型选择、连接池的运用、预处理语句和存储过程的使用,以及SQL语句的优化。这些策略不仅能够显著提升数据库访问的效率,还能够增强整个网络数据库应用系统的...

    jdbc完整流程使用

    **JDBC(Java Database Connectivity)**是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API让Java程序员可以连接到各种不同的数据库。本教程将详细介绍使用JDBC进行数据库连接、...

    JDBC性能优化.pdf

    ### JDBC性能优化详解 ...需要注意的是,性能优化是一个持续的过程,开发者需要不断评估应用程序的实际运行情况,并针对性地调整策略。希望本文能够为那些正在努力提高JDBC应用程序性能的开发者们提供有价值的参考。

    jdbc jdbc jdbc

    9. **性能优化**:JDBC提供了多种优化技巧,如关闭不再需要的资源(如结果集、Statement和连接),使用连接池来重用连接,以及合理使用`PreparedStatement`避免SQL注入。 10. **JDBC API的扩展**:随着技术的发展,...

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

    在实际开发中,为了调试和性能优化,JDBC提供了日志和监控功能。开发者可以通过设置系统属性或使用Connection的setLogWriter方法来开启日志输出,以追踪SQL语句的执行情况。 总之,Microsoft SQL Server JDBC ...

    SQL Server2000的JDBC驱动程序

    SQL Server 2000的JDBC驱动程序是微软为Java开发者提供的一种接口,使得Java应用程序能够连接到SQL Server数据库,执行SQL语句并处理结果。JDBC(Java Database Connectivity)是Java平台上的一个标准API,它允许...

    sqlserver2005 JDBC驱动程序JAR包

    **SQLServer2005 JDBC驱动程序JAR包详解** SQLServer2005 JDBC驱动程序是用于在Java应用程序中连接到Microsoft SQL Server 2005数据库的关键组件。JDBC(Java Database Connectivity)是一种Java API,允许Java...

    常用数据库JDBC驱动程序打包下载

    本压缩包"常用数据库JDBC驱动程序打包下载"提供了三种主流数据库的JDBC驱动,包括Oracle、MySQL和MSSQL,方便开发者一次性获取所需资源,避免了逐个寻找和安装的繁琐过程。 首先,Oracle JDBC驱动,也称为Oracle ...

    Oracle的jdbc8jar及版本说明.zip

    Oracle的JDBC驱动是连接Java应用程序与Oracle数据库的关键组件,ojdbc8.jar是Oracle公司针对Java 8及以上版本提供的最新JDBC驱动程序。这个压缩包"Oracle的jdbc8jar及版本说明.zip"包含了ojdbc8.jar文件以及一个名为...

    sqljdbc42 jdbc for java

    SQLJDBC42适用于Java 8及以上版本,支持包括SQL Server 2012、2014、2016及更高版本在内的多个数据库版本。同时,该驱动还具备向后兼容性,可以连接到较旧的SQL Server实例。 三、安装与配置 1. 下载:首先,你...

    Oracle12C JDBC 驱动

    在开发过程中,还需要注意兼容性和性能优化,例如选择合适的JDBC批处理大小,使用预编译的SQL语句避免解析开销,以及正确处理异常以避免资源泄露。了解Oracle12C的JDBC驱动特性以及如何有效利用它们,对于开发高效、...

    JDBC 开发指南 JDBC 开发指南 JDBC 开发指南

    它通过一种称为 JDBC(Java Database Connectivity)的技术,使 Java 程序能够跨网络访问远程数据库,从而极大地扩展了 Java 应用程序的能力。该技术不仅支持传统的客户端/服务器架构,还支持新兴的互联网/内联网...

    oracle 11g jdbc驱动程序

    Oracle 11g JDBC驱动程序是针对Oracle 11g数据库版本特别优化的,它提供了高效、可靠的数据库连接能力。 Oracle 11g JDBC驱动程序分为几种类型: 1. **JDBC Thin Driver**:也称为类型4驱动,是一种纯Java实现的...

    SQLServer2000JDBC驱动程序补丁

    SQL Server 2000 JDBC驱动程序补丁是针对Microsoft SQL Server 2000数据库管理系统的一个关键组件,主要用于Java应用程序通过Java Database Connectivity (JDBC) API与SQL Server 2000进行交互。JDBC是一种Java编程...

    hive jdbc驱动 2.5.15 及 2.6.1两个版本

    - **通用性**:JDBC驱动使得Hive可以与各种支持JDBC的应用程序和工具(如Java应用、BI工具、ETL工具等)进行交互。 - **远程访问**:通过网络,用户可以在远程服务器上执行Hive查询,而无需在本地安装Hive客户端。...

    JDBC 驱动加载过程分析

    在Java数据库连接(JDBC)中,驱动加载过程是连接到特定数据库的关键步骤。Oracle JDBC驱动是用于与Oracle数据库交互的Java驱动程序。本篇将深入解析Oracle JDBC驱动的加载过程,帮助理解如何通过JDBC建立数据库连接...

    jdbc 2.0驱动程序jar包

    JDBC 2.0是这个接口的一个重要版本,它在JDBC 1.0的基础上进行了扩展,提供了更多的功能和优化,使得Java开发者能够更高效、更灵活地操作数据库。 在JDBC 2.0中,最重要的新特性包括: 1. **JDBC连接池**:JDBC ...

    JDBC课件及源码.zip

    总结来说,JDBC是Java开发者连接和操作数据库的关键工具,掌握其基本概念、操作流程和优化技巧对于提升Java开发能力至关重要。通过"JDBC课件及源码.zip"中的资源,学习者可以系统地学习JDBC,结合实例代码加深理解,...

Global site tag (gtag.js) - Google Analytics