JDBC

JDBC简介

JDBC全称 Java Database Connectivity,即数据库连接,它是一种可以执行SQL语句的Java API。

JDBC驱动

数据库驱动程序是JDBC程序和数据库之间的转换层,数据库驱动负责将JDBC调用映射成特定的数据库调用。
四种类型JDBC驱动:

  • JDBC-ODBC桥,最早实现的JDBC驱动程序,将JDBC API映射为ODBC API(单线程)。
  • 直接将JDBC API映射成数据库特定的客户端API
  • 支持三层结构的JDBC访问方式,主要用于Applet阶段,通过Applet访问 数据库
  • 纯JAVA的,直接与数据库实例交互,这种驱动是职能的,他知道数据库的底层协议,目前最常用

JDBC常用接口类

Connection

代表数据库连接对象,每个Connection代表一个物理连接对话,要想访问数据库,必须先获得数据库连接。

//返回一个Statement对象
Statement createStatement() throws SQLException  
//返回预编译的Statement对象
PreparedStatement prepareStatement(String sql) throws SQLException 
//返回存储过程CallableStatement对象
CallableStatement prepareCall(String sql) throws SQLException
//控制事务的方法:
Savepoint setSavePoint() //创建一个保存点
Savepoint setSavePoint(String name) //以指定名字创建一个保存点
void setTransactionIsolation(int level) //设置事务隔离级别
void rollback() //回滚事务
void rollback(Savepoint savepoint) //将事务回滚到指定的保存点
void setAutoCommit(boolean autoCommit) //关闭自动提交,打开事务
void commit() //提交事务

获取数据库连接

Connection connection = DriverManager.getConnection(String url, String user, String pass)

使用Statement执行SQL语句

  • execute: 可以执行任何SQL语句,但比较麻烦
  • executeUpdate: 主要用于执行DML和DDL语句,执行DML语句返回收SQL语句影响的行数
  • executeQuery: 只能执行查询语句,执行后返回代表查询结果的ResultSet对象

回收数据库资源

ResultSet rs;
Statement stmt;
Connection conn;
//以上获取对象过程省略,关闭时是按照栈的原则进行关闭
if(rs != null)
    rs.close();
if(stmt != null)
    stmt.close();
if(conn != null)
    conn.close();

简单示例

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

public class JDBC {
    public static void main(String[] args) throws Exception{
        //加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //使用DriverManager获取数据库连接
        Connection conn = DriverManager
                .getConnection("jdbc:mysql://localhost:3306/jdbc",
                        "root", "root");
        //使用Connection来创建Statement对象
        Statement stmt = conn.createStatement();
        //执行SQL语句,这里只展示三种方法中的查询
        ResultSet rs = stmt.executeQuery("select * from test");
        //操作结果集
        while(rs.next()){
            System.out.println(rs.getInt(1)+ " "
                    + rs.getString(2) + " "
                    + rs.getString(3));
        }
        //关闭数据库连接
        if(rs != null)
            rs.close();
        if(stmt != null)
            stmt.close();
        if(conn != null)
            conn.close();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值