JDBC连接数据库第二步:与数据交互 Statement 和 PreparedStatement

当获得了与数据库的连接后,就可以与数据库进行交互了。 获取数据库连接,参考上一篇文章。

JDBC中Statement,PreparedStatement和CallableStatement接口定义了可用于发送SQL或PL/SQL命令,并从数据库接收数据的方法和属性。

下表提供了每个接口定义,以及使用这些接口的目的的总结。

表格来源:https://www.yiibai.com/jdbc/jdbc-statements.html

1.PreparedStatement对象

图片来源:https://www.yiibai.com/jdbc/jdbc-statements.html

1.2. 使用PreparedStatement对象进行数据库操作

1.2.1 获取数据库连接

    /**
     * 获取数据库连接
     * @return
     */
    public static Connection getConnection(){
        Connection connection = null;
        Properties info = new Properties();
        try {
            //***********代码缺陷:每次获取数据库连接时都要读配置文件**************************
            info.load(JdbcUtils.class.getClassLoader().
                    getResourceAsStream("com/conf/properties/jdbc-conf.properties"));
            String driverClass = info.getProperty("driverClass");
            String jdbcUrl = info.getProperty("jdbcUrl");
            String user = info.getProperty("user");
            String password = info.getProperty("password");
            //*****************************************************************************
            Class.forName(driverClass);
            connection = DriverManager.getConnection(jdbcUrl,user,password);
            if (null == connection){
                //log.error("Connection is null.");
                return null;
            }
        } catch (IOException e) {
            //log.error("Not found properties file.");
        } catch (ClassNotFoundException e) {
            //log.error("Not found driver class, load driver failed.");
        } catch (SQLException e) {
            //log.error("Get connection error.");
        }
        return connection;
    }

 

1.2.2 preparedStatement执行 Query 操作

 

/**
     * preparedStatement执行 Query 操作
     * PreparedStatement接口扩展了Statement接口,它添加了比Statement对象更好一些优点的功能。此语句可以动态地提供/接受参数。
     * JDBC中的所有参数都由 ? 符号作为占位符,这被称为参数标记。
     * 在执行SQL语句之前,必须为每个参数(占位符)提供值。setXxx()方法将值绑定到参数,其中XXX表示要绑定到输入参数的值的Java数据类型。
     * 如果忘记提供绑定值,则将会抛出一个SQLException。每个参数标记是它其顺序位置引用,第一个标记表示位置1,下一个位置2等等。
     * 该方法与Java数组索引不同(它不从0开始)。
     * 所有Statement对象与数据库交互的方法(a)execute(),(b)executeQuery()和(c)ex
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值