zoukankan      html  css  js  c++  java
  • 简单的JDBC编程步骤

    1.加载数据库驱动(com.mysql.jdbc.Driver)

    2.创建并获取数据库链接(Connection)

    3.创建jdbc statement对象(PreparedStatement)

    4.设置sql语句

    5.设置sql语句中的参数(使用preparedStatement)

    6.通过statement执行sql并获取结果

    7.对sql执行结果进行解析处理

    8.释放资源(resultSetpreparedstatementconnection)

    package cn.wh.jdbc.test;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    /**
     * JdbcTest.java 简单的jdbc编程步骤过程
     */
    public class JdbcTest {
        public static void main(String[] args) {
            Connection connection = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                // 1.加载数据库驱动
                Class.forName("com.mysql.jdbc.Driver");
                // 2.创建数据库连接
                connection = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8",
                        "root", "1234");
                // 3.书写sql语句
                String sql = " select * from user where username=? ";
                // 4.创建statement,预处理sql语句
                preparedStatement = connection.prepareStatement(sql);
                // 5.设置sql里的参数
                preparedStatement.setString(1, "张三");
                // 6.执行sql,得到结果集
                resultSet = preparedStatement.executeQuery();
                // 7.遍历结果集,打印输出
                while (resultSet.next()) {
                    System.out.println(resultSet.getString("id") + " "
                            + resultSet.getString("username"));
                }
            }
            catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            finally {
                // 8.释放资源
                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.数据库链接创建、释放频繁 造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。

          2.Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

        3.使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。

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

     

  • 相关阅读:
    Handler使用总结(转)
    LR连接oracle数据库-lr_db_connect
    selenium2(WebDriver)环境搭建
    使用selenium控制滚动条(非整屏body)
    selenium-打开IE浏览器遇到问题记录
    使用re-sign.jar对apk进行重签名
    Robotium-无源码测试
    genymotion不能联网
    SQL 常用脚本
    todolist
  • 原文地址:https://www.cnblogs.com/wanghui1316/p/5417957.html
Copyright © 2011-2022 走看看