• 1Mybatis入门--1.1单独使用jdbc编程问题总结


    1.1.1 jdbc程序

    Public static void main(String[] args) {
                Connection connection = null;
                PreparedStatement preparedStatement = null;
                ResultSet resultSet = null;
                
                try {
                    //加载数据库驱动
                    Class.forName("com.mysql.jdbc.Driver");
                    
                    //通过驱动管理类获取数据库链接
                    connection =  DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "mysql");
                    //定义sql语句 ?表示占位符
                String sql = "select * from user where username = ?";
                    //获取预处理statement
                    preparedStatement = connection.prepareStatement(sql);
                    //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
                    preparedStatement.setString(1, "王五");
                    //向数据库发出sql执行查询,查询出结果集
                    resultSet =  preparedStatement.executeQuery();
                    //遍历查询结果集
                    while(resultSet.next()){
                        System.out.println(resultSet.getString("id")+"  "+resultSet.getString("username"));
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                    //释放资源
                    if(resultSet!=null){
                        try {
                            resultSet.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    if(preparedStatement!=null){
                        try {
                            preparedStatement.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    if(connection!=null){
                        try {
                            connection.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }
            }

    上边使用jdbc的原始方法(未经封装)实现了查询数据库表记录的操作。

    1.1.1 jdbc编程步骤:

    1、 加载数据库驱动
    2、 创建并获取数据库链接
    3、 创建jdbc statement对象
    4、 设置sql语句
    5、 设置sql语句中的参数(使用preparedStatement)
    6、 通过statement执行sql并获取结果
    7、 对sql执行结果进行解析处理
    8、 释放资源(resultSet、preparedstatement、connection)

    1.1.2 jdbc问题总结如下:

    1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
    2、 Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
    3、 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
    对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

     

  • 相关阅读:
    高阶 CSS 技巧在复杂动效中的应用
    CSS 渐变锯齿消失术
    现代 CSS 指南 atrule 规则扫盲
    有意思的水平横向溢出滚动
    Windows内核逆向【目录】
    七、回调
    UOS隐藏分区方法
    fluentd 配置文件中label的作用是什么?
    什么是fluentd event ? fluentd event是由哪几个部分构成的?
    如何查看fluentd中都安装了哪些的插件?
  • 原文地址:https://www.cnblogs.com/rogge7/p/7127430.html
Copyright © 2020-2023  润新知