java JDBC复习

JDBC是一种可以执行的SQL语句的Java API,是连接数据库和Java应用程序的纽带。

JDBC-ODBC桥
JDBC-ODBC桥是一个JDBC驱动程序,完成了从JDBC操作到ODBC操作之间的转换工作,允许JDBC驱动程序被用作ODBC的驱动程序。使用JDBC-ODBC桥连接数据库的步骤如下:
(1)首先加载JDBC-ODBC桥的驱动程序,代码如下:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

(2)使用java.sql包中的Connection接口,并通过DriverManager类的静态方法getConnection创建连接对象,代码如下:

Connection conn = DriverManager.getConnection("jdbc:odbc:数据源名字","user name","password");

(3)想数据库发送SQL语句。使用Statement接口声明一个SQL语句对象。通过连接对象conn的createStatement()方法创建这个SQL对象。

Statement sql = conn.createStatement();

JDBC技术
JDBC的全称是java DataBase Connectivity,是一套面向对象的应用程序接口。指定了统一的访问各种关系数据库的标准接口。JDBC是一种底层的API,因此访问数据库时需要在业务逻辑中嵌入SQL语句。SQL语句是面向关系的,依赖于关系模型,所以通过JDBC技术访问数据库也是面向关系的,JDBC技术主要完成以下几个任务:
1、与数据库建立一个连接。
2、向数据库发送SQL语句。
3、处理从数据库返回的结果。
需要注意的是,JDBC不能直接访问数据库,必须依赖于数据库厂商提供的JDBC驱动程序。
JDBC驱动程序的类型
JDBC的总体结构由4种组件----应用程序、驱动程序管理器、驱动程序和数据源组成。
JDBC驱动基本上分为以下4种。
JDBC-ODBC桥、本地API一部分用Java编写的驱动程序、JDBC网络驱动、本地协议驱动。

JDBC中常用的类和接口
Connection接口
Connection接口代表与特定的数据库的连接,在连接上下文中执行SQL语句并返回结果,Connection接口的常用方法如下:

  1. close(), 关闭该数据库连接
  2. commit(), 提交所有更改内容并释放该Connection对象锁定的资源
  3. createStatement(), 基于本Connection对象,创建Statement对象
  4. getAutoCommit(), 获取当前是否是自动提交模式
  5. getMetaData(), 获取本连接相关的数据库元数据
  6. isClosed(), 返回当前连接对象是否已经被关闭
  7. preparedStatement(), 基于本连接对象,创建PreparedStatement对象
  8. rollback(), 取消本轮事务中前面已经提交的更改
  9. setAutoCommmit(), 设置是否自动提交

Statement接口
Statement接口用于在已经建立连接的基础上向数据库发送SQL语句。在JDBC中有3中Statement对象,分别是Statement、PreparedStatement,和CallableStatement。Statement对象用于执行不带参数的简单的SQL语句;PreparedStatement继承了Statement,用来执行动态的SQL语句;CallableStatement继承了PreparedStatement,用于执行对数据库的存储过程的调用。Statement常用的方法如下:

  1. execute(String sql),执行静态的SELECT语句,该语句可能返回多个结果集

  2. executeQuery(String sql),执行给定的SQL语句,该语句返回单个ResultSet对象。

  3. clearBatch(),清空此Statement对象的当前SQL命令列表。

  4. executeBatch(),将一批命令提交给数据库执行,

  5. addBatch(String sql),将给定SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理,将抛出异常

  6. close(),释放Statement实例占用的数据库和JDBC资源。
    PreparedStatement接口
    PreparedStatement接口用来执行SQL语句。通过PreparedStatement实例执行的动态SQL语句,将被编译保存到PreparedStatement实例中,从而可以反复地执行该SQL语句。
    在这偷懒一下就不对PreparedStatement的方法一一列出了。需要可以查阅java API。
    DriverManager类
    DriverManager类用来管理数据库中的所有驱动程序。它是JDBC的管理层,通过getConnection()方法可以建立连接,有可能抛出SQLException异常。DriverManager常用的方法如下:

  7. getConnection(String url,String user,String password),指定3个参数(依次是连接数据库的URL、用户名、密码)来获取与数据库的连接。

  8. setLoginTimeout(),获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。

  9. println(String message)将一条消息打印到当前JDBC日志流中
    ResultSet接口
    ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的的结果集。ResultSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录前面,通过next()方法可将指针向下移。
    ResultSet接口方法较多就不一一列出。需要请查看java API

实操代码:

package com.huangxt.jdbc;

import java.sql.*;

/**
 * @Title: JdbcTest
 * @Description:
 * @Auther: huangxt
 * @Version: 1.0
 * @create 2019/7/13 12:32
 */
public class JdbcTest {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jeeplus_activity?serverTimezone=GMT%2B8","root","123456");
        //获取Statement
        Statement statement = conn.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from sys_user");
        while(resultSet.next()){
            System.out.println(resultSet.getString("name"));
        }
        statement.close();

        System.out.println("-----------------");
        //预处理语句
        PreparedStatement preparedStatement = conn.prepareStatement("select * from sys_user where name = ?");
        preparedStatement.setString(1,"admin");

        ResultSet resultSet2 = preparedStatement.executeQuery();
        while(resultSet2.next()){
            System.out.println(resultSet2.getString("name"));
        }
        preparedStatement.close();
        conn.close();



    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值