JDBC API

作者: 小小爱笑 | 来源:发表于2019-04-26 11:51 被阅读0次

前言

实际工作中会使用mybatis作为业务的 持久层框架,mybatis封装好了对JDBC的调用。便于开发者使用。而要深入理解mybatis,就需要对JDBC有所了解。

JDBC

获取数据库连接

方式一 通过 DriverManager

val url = "jdbc:mysql://10.252.28.152:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false"
val conn = DriverManager.getConnection(url, "gen", "123")
    1. DriverManager 初始化时,首先读取 系统属性 jdbc.drivers ,用于加载驱动类。如果 驱动已SPI形式打包,会自动加载。


      mysql 驱动
    1. DriverManager.getConnection 通过url前缀与已注册的驱动匹配,调用driver.connect() 获取Connection。

方式二 通过 DataSource

作为DriverManager工具的替代,数据源对象是获取连接的首选方法。

通常用于实现连接池 及 分布式 事务。

执行sql

val stat = conn.getStatement()
// insert , update, delete
stat.executeUpdate(sqlcmd)
// query
val rs : ResultSet = stat.executeQuery(sqlcmd)

stat.close()
    1. 创建Statement对象,dml语句调用executeUpdate 查询调用 executeQuery

预备语句PreparedStatement,用?表示参数,每次执行时绑定不同参数,可以反复使用,提高效率

处理结果集

通用结果集 ResultSet

while(rs.next()) {
 // by index
 val idbn = rs.getString(1)
// by column name
 val price = rs.getDouble("price")
}

可以通过下标遍历遍历列,从1开始。
也可以通过列名遍历。
另外 可以获取结果集的元数据。

获取自动生成键

stat.executeUpdate(insertStatement, Statement.RETURN_GENERATED_KEYS)
val rs = stat.generatedKeys
if ( rs.next() ) {
  val key = rs.getInt(1)
}

可滚动的结果集

val stat = conn.createStatement(type, concurrency)

行集 RowSet

与ResultSet不同,使用RowSet可以缓存结果,不需要与数据库始终保持连接。

元数据

val meta : DatabaseMetaData = conn.metaData

val rsmeta : ResultSetMetaData  = rs.metaData

DatabaseMetaData用于提供数据库相关的元数据
ResultSetMetaData用于提供结果集相关的元数据

事务

conn.setAutoCommit(false)
val stat = conn.createStatement()
stat.executeUpdate(cmd1)
stat.executeUpdate(cmd2)

conn.commit() // conn.rollback()

默认下 数据库连接处于自动提交模式。


参考:
https://docs.oracle.com/javase/tutorial/jdbc/overview/index.html

原文链接

相关文章

  • JDBC和数据库连接池

    1.JDBC介绍1.1 1.1 JDBC介绍 2.JDBC之API2.1 2.1 JDBC之API 3.JDBC例...

  • 第二章 目标

    2.1 JDBC API 的历史 JDBC API 是一种成熟的技术,1997 年, 首次提出了 JDBC 规范,...

  • 6.JDBC学习笔记

    本文内容 1.什么是JDBC以及为什么要使用JDBC 2.JDBC核心API的讲解 3.使用JDBC核心API进行...

  • 基本

    概述 1.什么是JDBC以及为什么要使用JDBC 2.JDBC核心API的讲解 3.使用JDBC核心API进行CR...

  • springboot常用starter④-jdbc

    前言 Java JDBC API 来自官方介绍 Java 数据库连接 (JDBC) API 提供来自 Java 编...

  • Jdbc

    Jdbc核心 Jdbc介绍 Jdbc增删改查使用步骤 Jdbc中核心API SQL注入 PreparedState...

  • MySQ中的JDBC规范

    一. JDBC介绍 二. 通过JDBC连接数据库 三. JDBC核心API

  • 第一章 简介

    1.1 The JDBC API jdbctm API提供了从JavaTM编程语言编程访问关系型数据。使用JDBC...

  • JDBC面试问题与解答

    什么是JDBC API以及何时使用它? Java数据库连接API允许我们使用关系数据库.JDBC API接口和类是...

  • JDBC,预编译,DAO设计,事务

    JDBC(Java DataBase Connectivity) JDBC是用于执行SQL语句的Java API,...

网友评论

    本文标题:JDBC API

    本文链接:https://www.haomeiwen.com/subject/flxfnqtx.html