1.原生态JDBC编程详解与问题总结

本文介绍JDBC编程的基本步骤,包括数据库连接的建立与关闭、预编译SQL语句的使用等,并提出针对硬编码和频繁数据库操作等问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先导入jar包

这里写图片描述
第一个为mysql驱动包
第二个为oracle驱动包
这里写图片描述

2.以下步骤见代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 * jdbc编程
 * @author asdc
 *
 */
public class TestJDBC {

    public static void main(String[] args) {

        //使用数据库连接
        Connection connection = null;
        //使用预编译statement,使用预编译statement提升数据库性能
        PreparedStatement preparedStatement = null;
        //结果集
        ResultSet resultSet = null;

        try {

            //1.加载数据库驱动包
            Class.forName("com.mysql.jdbc.Driver");

            //2.通过驱动管理获取数据库连接
            connection = DriverManager.getConnection("");

            //3.定义sql语句
            String sql = "select * from Users where id = ?";

            //4.获取预处理statement,设置参数
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, "1111");

            //5.向数据库发出sql执行查询,查出结果集
            resultSet = preparedStatement.executeQuery();

            //6.遍历查询结果集
            while(resultSet.next()){

                System.out.println(resultSet.getString("id")+","+resultSet.getString("userName"));

            }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{//释放资源 从下向上释放

            if(resultSet != null){

                try {
                    resultSet.close();
                } catch (Exception e2) {
                    // TODO: handle exception
                }

            }

            if(preparedStatement != null){

                try {
                    preparedStatement.close();
                } catch (Exception e2) {
                    // TODO: handle exception
                }

            }

            if(connection != null){

                try {
                    connection.close();
                } catch (Exception e2) {
                    // TODO: handle exception
                }

            }

        }

    }

}

3.问题总结

①.数据库连接用的时候创建开启,不用的时候关闭,频繁操作数据库。影响数据库性能
解决方案:使用数据库连接池
②使用sql查询时使用的硬编码到java代码中,如果需要修改sql语句需要重新编译java代码,不利于系统维护
解决方案:将sql语句配置到xml中,即使sql发生变化也不需要重新编译java代码
③向preparedStatement中设置参数,对占位符位置设置参数时,硬编码到java代码中,不利于系统维护
解决方案:配置到xml中,即使sql发生变化也不需要重新编译java代码
④从结果集中查询时存在硬编码如:resultSet.getString(“id”)
解决方案:查询完成直接映射成对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值