jdbc

本文详细介绍了Java如何通过JDBC进行数据库操作,包括注册驱动、获取连接、创建Statement对象、执行SQL语句、处理结果集及资源释放。还强调了将数据库连接参数存储在properties文件中,并展示了使用ResourceBundle读取这些参数的示例。
摘要由CSDN通过智能技术生成

前言

调用数据库需要下载对应数据库的驱动

建议把参数写到properties中

JDBC编程六大步骤

1.注册驱动(连接对应品牌的数据库)

2.获取连接(表示JVM的进程和数据库进程之间的通道打开,使用完后一定要关闭)

3.获取数据库操作对象(专门执行sql语句的对象)

4.执行sql语句(DQL,DML…)

5.处理查询结果集(只有当第四步执行的是select语句时才有这一步)

6.释放资源(使用完资源之后一定要关闭资源)

1.注册驱动

DriverManager类的registerDriver(Driver driver)注册所需驱动

Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);

常用方式

Class.forName(“com.mysql.cj.jdbc.Driver”);加载这个类来运行静态代码块实现驱动的注册

常用原因:参数是一个字符串,字符串可以写到properties中

2.获取连接

DriverManager类的getConnection(String url, String root, String password)获取到与数据库连接的Connection类

Connection con = null;
con=DriverManager.getConnection( url, user, password);

3.创建可执行sql语句的对象(Statement对象)

通过连接connection对象的creatStatement()创建可执行sql语句对象

Statement statement = null;
statement=con.createStatement();//创建对象

4.执行sql语句

使用String sql=" …"传递sql语句到数据库并执行返回结果

jdbc中的sql语句不能有分号

statement对象中executeUpdate(sql)专门执行DML语句(insert delete update) 返回值为受影响的数据库中记录条数

插入

insert into …

删除

delete

更新

update

-------

statement对象中executeQuery(sql)专门执行DQL语句(select)返回值为查询结果集

查询

select

5.处理查询结果集

getString()方法的特点是:不管数据库中数据类型是什么,都以String形式返回;下标都是从1开始

6.释放资源

先释放ResultSet再释放statement最后释放connection

7.使用ResourceBundle类调用propreties文件(重点)

使用ResourceBundle类的getBundle(String basename)来实现调用,通过getString(String key)来获取所需数据

8.代码

public void JDBCTest(){
    Connection con = null;
    Statement statement = null;
    ResultSet set = null;
    try {
        //获取属性值
        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
        String driver = bundle.getString("Driver_Name");
        String url = bundle.getString("url");
        String user = bundle.getString("user");
        String password = bundle.getString("password");


        //1.注册驱动(反射)
        Class.forName(driver);

        //2.获取连接
        con = DriverManager.getConnection(url, user, password);

        //3.创建可执行sql语句对象(statement)
        statement = con.createStatement();

        //4.执行sql语句
        String sql = "select * from s";
        set = statement.executeQuery(sql);

        //5.处理查询结果集
        while(set.next()){
            System.out.println(set.getString(1)+"|"+set.getString(2)+"|"+set.getString(3)+"|"+set.getString(4));
        }



    } catch (SQLException | ClassNotFoundException e) {
        e.printStackTrace();
    }finally {//6.关闭资源(先关statement再关connection)
        if(set!=null){
            try {
                set.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值