其他分享
首页 > 其他分享> > JDBC

JDBC

作者:互联网

JDBC

简介

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。

执行流程:

基本使用

加载驱动 - Driver接口

在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序。不同的数据库有不同的装载方法。驱动就是各个数据库厂商实现的Sun公司提出的JDBC接口,即对Connection等接口的实现类的jar文件。

装载MySQL驱动:

建立连接 - Connection接口和DriverManager接口

import java.sql.Connection;
import java.sql.DriverManager;

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","password");

执行查询 - Statement接口

三种Statement类:

展开结果集数据库 - ResultSet接口

String sql = "SELECT * FROM t_user WHERE id>?"; //占位符
PreparedStatement ps = conn.prepareStatement(sql);
ps.setObject(1,2); //查询ID大于2的

ResultSet res = ps.executeQuery();

while(res.next()){
    System.out.println(res.getInt(1) + "---" + res.getString(2) + "---" + res.getString(3) + "---" + res.getString(4));
}

关闭连接 - close()方法

后开先关,使用close()方法。

遵循:ResultSet-->Statement-->Connection的顺序,三个最好分开写。

finally {
    try{
        if(res!=null){
            res.close();
        }
    }
    catch (SQLException throwables) {
        throwables.printStackTrace();
    }
    try{
        if(ps!=null){
            ps.close();
        }
    }
    catch (SQLException throwables) {
        throwables.printStackTrace();
    }
    try{
        if(conn!=null){
            conn.close();
        }
    }
    catch (SQLException throwables) {
        throwables.printStackTrace();
    }
}

事务

基本概念

一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元。

使用

conn.setAutoCommit(flase); // JDBC默认自动提交
/**
*一系列SQL操作
*/
conn.commit(); // 手动提交

CLOB & BLOB

简介

CLOB使用

可使用流操作直接写入

ps.setClob(2, new FileReader(new File("d:/a.txt"))); // 将文本文件内容直接写入数据库
ps.setClob(2, new BuffereReader(new InputStreamReader(new ByteArrayInputStream("testString".getBytes())))); // 用流输入字符串

读出当然也是流

while(res.next()){
    Colb c = res.getClob("myInfo");
    Reader r = c.getCharacterStream();
    int temp = 0;
    while((temp=r.read())!=-1){
        System.out.print((char)temp);
    }
}

BLOB使用

可用字节流写入图片之类的

ps.setBlob(2, new FileInputStream("d:/a.jpg")); // 将图片内容直接写入数据库

读出

while(res.next()){
    Bolb b = res.getBlob("headImg");
    InputStream is = b.getBinaryStream();
    OutputStream os = new FileOutputStream("d:/a_downlod.jpg");
    int temp = 0;
    while((temp=is.read())!=-1){
        os.write(temp);
    }
}

  1. 16 ↩︎

  2. 32 ↩︎

标签:语句,ps,JDBC,res,数据库,Statement,sql
来源: https://www.cnblogs.com/AncilunKiang/p/16674046.html