Day6: JDBC

JDBC:是SUN公司为了简化开发人员对数据库的统一操作,提供的java操作数据库的规范。

一. JDBC的测试代码

编写java代码的步骤:

  • step1: 加载驱动;
  • step2: 连接数据库(DriverManager.getConnection),设置用户信息和url;
  • step3: 获得执行sql的对象(statement);
  • step4: 获得返回的结果集
  • step5: 释放连接
package lesson01;

import java.sql.*;

// 第一个jdbc程序
public class JdbcFirst {
   
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
   
        // 1. 加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");  // 固定写法
        
        // 2. 用户信息和url
        // useUnicode=true&characterEncoding=utf8&&useSSL=true
        String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&&useSSL=true";
        String username = "root";
        String password = "123456";   // 密码改成自己的
        
        // 3. 连接成功,数据库对象(connection代表数据库)
        Connection connection = DriverManager.getConnection(url,username,password);
        
        // 4. 执行SQL的对象
        Statement statement = connection.createStatement();
        
        // 5. 用执行SQL的对象 去 执行SQL,可能存在结果,查看返回的结果
        String sql = "SELECT * FROM `users`";
        ResultSet resultSet = statement.executeQuery(sql); //返回的结果集,封装了所有的查询结果

        while(resultSet.next())
        {
   
            System.out.println("id=" + resultSet.getObject("id"));
            System.out.println("name=" + resultSet.getObject("NAME"));
            System.out.println("password=" + resultSet.getObject("PASSWORD"));
            System.out.println("email=" + resultSet.getObject("email"));
            System.out.println("birthday=" + resultSet.getObject("birthday"));
        }
        // 6. 释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

二. JDBC代码解析

DriverManager:加载驱动 以及 连接数据库

//DriverManager.registerDriver(new Driver()); 原来的写法
Class.forName("com.mysql.cj.jdbc.Driver");//固定写法(查看Driver底层)

// connection代表数据库对象
Connection connection = DriverManager.getConnection(url,username,password);
// connection可以完成数据库的操作,例如:
//事务自动提交
//事务提交
//事务回滚
connection.commit();
connection.rollback();
connection.setAutoCommit();

URL和用户名

String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";   // 密码改成自己的

//mysql --3306
//协议://主机地址:端口号/数据库名?参数1&参数2&参数3
// oralce -- 1521
//jdbc:oracle:thin:@localhost:1521:sid

Statement 执行SQL的对象
Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可。

只需要记住两个常用的语句statement.executeQuery()statement.executeUpdate()

  • statement.executeUpdate():用于数据库的增、删、改,操作成功返回一个正数,代表受影响的行数。
  • statement.executeQuery():查询操作,返回查询的结果集。
// 创建statement 执行SQL的对象
Statement statement = connection.createStatement();

// 编写sql语句
String sql = "SELECT * FROM `users`";
// 执行
ResultSet resultSet = statement.executeQuery(sql); //返回的结果集,封装了所有的查询结果

statement.executeUpdate();//插入,删除,更新,都用这个,返回一个受影响的行数;
statement.execute(); //执行任意的SQL
statement.executeQuery();//查询操作返回resultSet

ResultSet:查询的结果集
封装了所有的查询结果,再利用result.getObject(“字段名”)来获得具体查询数据。

resultSet.getObject();//在不知道列属性的情况下使用
//如果知道列的属性使用指定的类型
resultSet.getString();
resultSet.getInt();
resultSet.getBoolean();
....

resultSet.beforeFirst();//移动到最前面
resultSet.afterLast();//移动到最后面
resultSet.next();//移动到下一个数据
resultSet.previous();//移动到前一行
resultSet.absolute(row);//移动到指定行

释放资源:数据库很占用资源,一定要释放。

// 6. 释放连接
resultSet.close();
statement.close();
connection.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值