JDBC无封装下的标准代码和JDBC问题总结-V1.0

3 篇文章 0 订阅
2 篇文章 0 订阅

jdbc问题总结如下

  1. 数据库【连接创建、释放频繁】造成系统资源浪费,从而影响系统性能。解决方式:使用【数据库连接池】可解决此问题。

  2. 【Sql语句】在代码中【硬编码】,造成代码不易维护,在实际应用中sql语句可能经常发生变化,sql变动需要改变文件下的java代码。

  3. 使用预编译声明【preparedStatement】向【占位符传参】存在【硬编码】,因为sql语句的where条件不一定,?数量可能多也可能少,对应位置也可能变化,修改sql后还要修改对应代码,系统不易维护。

  4. 对【结果集】解析存在【硬编码】,sql变化导致解析代码变化,系统不易维护,如果能将【数据库记录封装成pojo对象】解析相对比较方便。

JDBC无封装下的标准代码

public static void main(String[] args) {

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;

try {
    // 加载数据库连接驱动
    Class.forName("com.mysql.jdbc.Driver");

    // 通过DriverManager驱动管理类获取数据库连接【问题一】
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_project?characterEncoding=utf-8", "root", "root");

    // 定义sql语句 ?表示占位符【问题二】
    String sql="select * from tb_user where username=?";

    // 获取预处理statement
    pstmt= conn.prepareStatement(sql);

    // 设置参数,第一个参数为sql语句中占位符的序号(从1开始),第二个参数为设置的参数值【问题三】
    pstmt.setString(1, "王五");

    // 向数据库发出sql执行查询,查询出结果集【问题四】
    rs= pstmt.executeQuery();

        // 遍历查询结果集
            while (rs.next()) {
                System.out.println(rs.getString("id") 
                            + "  " + rs.getString("username"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

        // 释放资源
            if (rs!= null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (pstmt!= null) {
                try {
                    pstmt.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conn!= null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值