zoukankan      html  css  js  c++  java
  • MyBatis(一):JDBC使用存在的问题

    1. JDBC使用步骤:

      a:加载 JDBC 驱动程序
      b:创建数据库的连接对象Connection
      c:根据链接获取Statement
      d:拼接SQL语句及设置参数
      e:执行SQL并获取结果集
      f:关闭使用的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","111222");
                  String sql = "select * from user where name = ?";
                  preparedStatement = connection.prepareStatement(sql);
                  // 设置参数(序号从1开始)
                  preparedStatement.setString(1,"rangers");
                  // 执行SQL 获取结果集
                  resultSet = preparedStatement.executeQuery();
      
                  User user = new User();
                  while (resultSet.next()){
                      int id = resultSet.getInt("id");
                      String name = resultSet.getString("name");
                      String address = resultSet.getString("address");
                      // 封装实体
                      user.setId(id);
                      user.setName(name);
                      user.setAddress(address);
                  }
                  System.out.println(user.toString());
              } catch (Exception e) {
                  e.printStackTrace();
              } finally {
                  try {
                      // 关闭连接对象
                      preparedStatement.close();
                      connection.close();
                  } catch (SQLException throwables) {
                      throwables.printStackTrace();
                  }
              }
          }
      
    2. JDBC存在问题及解决办法

      • 存在问题:
        1. 数据库连接URL、用户名、密码与Java代码混淆在一起
        2. 数据库连接创建、释放频繁造成系统资源浪费,影响服务器性能
        3. SQL语句与Java代码混淆在一起
        4. 使用PreparedStatement设置参数存在硬编码
        5. 对结果集解析存在硬编码
      • 解决思路
        1. 使用数据库连接池解决连接频繁创建、释放问题
        2. 将SQL语句抽取到XML配置文件中,将SQL与Java代码剥离
        3. 使用Java 中的反射、内型等技术,对参数设置、结果集封装进行自动映射
  • 相关阅读:
    开源软件
    delphi 语法 点滴总结clientdataset
    combobox 下拉框 高度 调节 呵呵
    Delphi7中ClientDataSet的排序
    clientdataset 修改记录 成功
    http://bbs.csdn.net/topics/340046630 dbgrid怎么获取当前记录值
    Delphi中StrToDateTime函数TFormatSettings参数的使用
    IncSecond:将一个TDateTime变量加减一定数量的秒数
    clientdataset 做为 单机数据库的 使用 学习
    cmake命令用法整理list命令
  • 原文地址:https://www.cnblogs.com/rangers-sun/p/14500471.html
Copyright © 2011-2022 走看看