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

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
分享到:
评论

相关推荐

    Java_JDBC由浅入深

    2.2 Jdbc与应用程序的关系 3 2.3 数据库的连接步骤 4 2.4 Quick Start 4 第三节 如何与数据库建立连接 6 3.1 注册驱动 6 3.2 建立数据库的连接 8 3.3 规范Quick Start中的例子 10 第四节 Statement 接口的使用详解 ...

    oracle+MySQL+jdbc数据库教程

    课程还将重点介绍JDBC技术,这是Java程序连接和操作数据库的标准方式。学员将通过实战示例掌握如何使用JDBC API进行数据库连接、执行SQL命令、处理结果集,以及进行事务管理。这一技能对于Java后端开发者来说是必不...

    JSP+SQL房屋租赁管理信息系统JDBC(源代码+论文+答辩PPT).rar

    该资料包包含了必要的源代码,允许用户快速搭建和部署一个基于Web的应用程序,通过该程序可以有效地进行房屋信息的录入、查询、更新和删除操作。此系统设计的初衷是为了简化和自动化房屋租凭行业的管理工作,通过...

    微信小程序移动OA的后台服务端项目,框架Spring+springmvc+jdbc.zip

    此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了...

    2、高质量在线选房系统(servlet+jdbc)

    界面设计简洁明了,操作流程清晰易懂,使得用户能够轻松上手。同时,系统还提供了实时更新的房源信息,确保用户能够获取到最新、最准确的房源动态。 总的来说,这款高质量的在线选房系统以其卓越的性能、稳定的运行...

    JDBC数据库的使用操作总结

    JDBC的操作方式比较单一,由五个流程组成:1.通过数据库厂商提供的JDBC类库向DriverManager注册数据库驱动 2.使用DriverManager提供的getConnection()方法连接到数据库 3.通过数据库的连接对象的createStatement方法...

    深入探索MyBatis:全局配置文件解析及应用优化策略

    这篇文章深入分析了MyBatis配置文件的解析流程和关键元素。MyBatis配置文件主要包含数据库连接池配置、SQL语句映射、类型别名定义、插件配置等核心部分。文档首先阐述了MyBatis相较于传统JDBC的优势,如简化数据库...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    6.1.5 JDBC工作原理 6.2 Oracle高可用性连接组件 6.2.1 SCAN别名 6.2.2 SCAN监听器 6.2.3 SCAN解析 6.2.4 SCAN兼容性配置 6.2.5动态注册与负载均衡 6.2.6 SCAN配置信息 6.2.7 SCAN VIP与节点VIP 6.2.8 ...

    基于Java Swing + MySQL + JDBC 的图书管理系统.zip

    MySQL拥有庞大的开发者社区和丰富的第三方插件、库、中间件支持,提供了丰富的文档、教程、论坛以及专业服务,极大地简化了开发、运维和故障排查过程。 关键组件与日志 系统数据库 MySQL内部包含几个特殊的系统...

    源码基于JSP的网上书店系统(论文+jsp源程序).rar

    至于JSP源程序,它可能是使用传统的MVC模式编写,其中涉及的技术栈可能包括JSP, Servlet, JavaBean, JDBC以及可能的框架如Struts或Spring。源代码将允许接收者直接运行和测试网上书店系统,也方便他们学习和修改代码...

    IronTrackSQL监控和剖析数据库操作

    IronEye SQL 这个轻量级的 Java 工具提供所有流动在数据库与应用程序之间的 SQL 统计信息并用多张图表展现,可以快速优化程序的性能。 IronGrid 相对于 Continuous Integration 提出了 Continuous Performance 的...

    Java Web程序设计教程

    4.2.2jdbc驱动程序 68 4.2.3使用jdbc读取数据 69 4.3项目实战——存储图书信息 73 本章小结 78 课后练习 79 第5章struts2框架基础 80 5.1mvc框架 80 5.1.1model1与model2 80 5.1.2mvc设计模式 81 5.1.3...

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    在运维方面,运维工具做了优化,简化操作流程,降低操作复杂度及操作过程对于线上的影响。同时功能也更加丰富,支持自动部署 Binlog 组件、支持启用 TLS。 2.0 详细更新列表 TiDB: 1.SQL 优化器 精简统计信息数据...

    Java博客系统源码(Docker+SpringBoot+Mybatis+thymeleaf).zip

    6. 结合docker,改写install过程,实现docker整合的优化 7. 为个人站上线做准备(修改bug,页面调整,功能调整) 8. 彻底删除install步骤 9. 整合docker-compose实现项目的一键初始化,减少部署流程 10.日志改为log4j ...

    mybatis源代码,包括基本的增删改查、动态参数、动态数据、逆向工程

    3. MyBatis内部封装了JDBC,简化了加载驱动、创建连接、创建statement等烦琐的过程。 MyBatis具有以下特点。 (1)MyBatis是免费开源的,它是最简单的持久层框架,小巧且简单易学。 (2)MyBatis与JDBC相比,...

    Java数据编程指南

    数据库性能问题 本地编译机制 挑选适当的JDBC驱动程序 连接池 事务和批量查询 存储过程和JDBC准备语句 JDBC准备语句 在程序块上检索大数据集合 高速缓存频繁使用的数据 性能监控 小结...

    webDemo:Mybits和Servlet学习

    Hibernate:杜绝开发人员亲自试用JDBC,杜绝亲自试用sql命令Hibernate无法进行SQL优化Hibernate缓存依赖过大,一级缓存如何同步二级缓存Mybatis:杜绝开发人员亲自试用JDBC,认为开发人员专注于SQL优化,Mybatis...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题31.jdbc调用存储过程 Java面试题32.简单说一下你对jdbc的理解 Java面试题33.写一个jdbc的访问oracle的列子 Java面试题34.jdbc中preparedStatement比Statement的好处 Java面试题35.数据库连接池的作用 Java...

    基于JSP+Mysql的银行柜员业务绩效考核系统软件程序源码+数据库+word毕业设计论文文档.zip

    基于JSP+Mysql的银行柜员业务绩效考核系统软件程序源码+数据库+word毕业设计论文文档.业务绩效考核系统主要目的是使绩效...通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能

Global site tag (gtag.js) - Google Analytics