什么是 JDBC:

• JDBC(Java DataBase Connectivity)java 数据库连接

• 是 JavaEE 平台下的技术规范

• 定义了在 Java 语言中连接数据,执行 SQL 语句的标准

• 可以为多种关系数据库提供统一访问

什么是数据库驱动程序:

• 数据库厂商对 JDBC 规范的具体实现

• 不同数据产品的数据库驱动名字有差异

• 在程序中需要依赖数据库驱动来完成对数据库的操作

程序操作数据库流程:

Driver 接口:

Driver 接口的作用是来定义数据库驱动对象应该具备的一些能力。比如与数据库建立连接的方法的定义所有支持 java 语言连接的数据库都实现了该接口,实现该接口的类我们称之为数据库驱动类。在程序中要连接数据库,必须先通过 JDK 的反射机制加载数据库驱动类,将其实例化。不同的数据库驱动类的类名有区别。

加载 MySql 驱动:Class.forName("com.mysql.jdbc.Driver");

加载 Oracle 驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

DriverManager 类:

DriverManager 通过实例化的数据库驱动对象,能够建立应用程序与数据库之间建立连 接。并返回 Connection 接口类型的数据库连接对象。

常用方法:

• getConnection(String jdbcUrl, String user, String password)该方法通过访问数据库的 url、用户以及密码,返回对应的数据库的 Connection 对象。

Connection 接口

Connection 与数据库的连接(会话)对象。我们可以通过该对象执行 sql 语句并返回结果。

连接 MySql 数据库:

Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

连接 Oracle 数据库:

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database","user", "password");

连接 SqlServer 数据库:

Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port;DatabaseName=database", "user", "password");

常用方法:

• createStatement():创建向数据库发送 sql 的 Statement 接口类型的对象。

• preparedStatement(sql) :创建向数据库发送预编译 sql 的 PrepareSatement 接口类型的对象。

• prepareCall(sql):创建执行存储过程的 CallableStatement 接口类型的对象。

• setAutoCommit(boolean autoCommit):设置事务是否自动提交。

• commit() :在链接上提交事务。

• rollback() :在此链接上回滚事务。

Statement 接口:

用于执行静态 SQL 语句并返回它所生成结果的对象。由 createStatement 创建,用于发送简单的 SQL 语句(不支持动态绑定)。

常用方法:

• execute(String sql):执行参数中的 SQL,返回是否有结果集。

• executeQuery(String sql):运行 select 语句,返回 ResultSet 结果集。

• executeUpdate(String sql):运行 insert/update/delete 操作,返回更新的行数。

• addBatch(String sql) :把多条 sql 语句放到一个批处理中。

• executeBatch():向数据库发送一批 sql 语句执行。

PreparedStatement 接口

继承自 Statement 接口,由 preparedStatement 创建,用于发送含有一个或多个参数的 SQL语句。PreparedStatement 对象比 Statement 对象的效率更高,并且可以防止 SQL 注入,所以我们一般都使用 PreparedStatement。

常用方法

• addBatch()把当前 sql 语句加入到一个批处理中。

• execute() 执行当前 SQL,返回个 boolean 值

• executeUpdate()运行 insert/update/delete 操作,返回更新的行数。

• executeQuery() 执行当前的查询,返回一个结果集对象

• setDate(int parameterIndex, Date x)向当前SQL语句中的指定位置绑定一个java.sql.Date值。

• setDouble(int parameterIndex, double x)向当前 SQL 语句中的指定位置绑定一个 double值

• setFloat(int parameterIndex, float x)向当前 SQL 语句中的指定位置绑定一个 float 值

• setInt(int parameterIndex, int x)向当前 SQL 语句中的指定位置绑定一个 int 值

• setString(int parameterIndex, String x)向当前 SQL 语句中的指定位置绑定一个 String 值

 ResultSet 接口

ResultSet 提供检索不同类型字段的方法。

常用方法:

• getString(int index)、getString(String columnName)

获得在数据库里是 varchar、char 等类型的数据对象。

• getFloat(int index)、getFloat(String columnName)

获得在数据库里是 Float 类型的数据对象。

• getDate(int index)、getDate(String columnName)

获得在数据库里是 Date 类型的数据。

• getBoolean(int index)、getBoolean(String columnName)

获得在数据库里是 Boolean 类型的数据。

• getObject(int index)、getObject(String columnName)

获取在数据库里任意类型的数据。

ResultSet 对结果集进行滚动的方法

• next():移动到下一行。

• Previous():移动到前一行。

• absolute(int row):移动到指定行。

• beforeFirst():移动 resultSet 的最前面。

• afterLast() :移动到 resultSet 的最后面。

 CallableStatement 接口

继承自 PreparedStatement 接口,由方法 prepareCall 创建,用于调用数据库的存储过程。

JDBC 的使用

加载数据库驱动程序 → 建立数据库连接 Connection → 创建执行 SQL 的语句Statement → 处理执行结果 ResultSet → 释放资源

注册驱动:

Class.forName("com.mysql.jdbc.Driver");

获取连接:

Connection conn =DriverManager.getConnection("jdbc:mysql://localhost: 3306/bjsxt?useUnicode=true&characterEncoding=utf-8", "root", "root");

执行 SQL

String sql="insert into departments values(default,'"+department_name+"'"+location_id+")" ; Statement state = conn.createStatement();

释放资源:

if(state != null){ try { state.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }if(conn != null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

JDBC技术对数据库进行操作的更多相关文章

  1. 使用原生JDBC方式对数据库进行操作

    使用原生JDBC方式对数据库进行操作,包括六个步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM.可以通过java.lang.Class类的静态方法forNa ...

  2. JDBC增删改数据库的操作

    JDBC入门及简单增删改数据库的操作 一.JDBC的引入 1.JDBC的概念 JDBC:Java Database Connection,表示数据库连接(任何数据库都支持JDBC的连接),是一个独立于 ...

  3. jdbc连接远程数据库进行操作

    链接远程数据库的时候,要把获得链接的url进行修改 1 package com.test; import java.sql.Connection; import java.sql.DriverMana ...

  4. server用JDBC对mysql数据库进行操作

    1:获取数据库连接 Connection connection=getConnection(); 2:准备SQL语句 3:调用Connection的creatStatement()方法获取Statem ...

  5. JAVA数据库编程(JDBC技术)-入门笔记

    本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学 ...

  6. 2017.11.12 web中JDBC 方式访问数据库的技术

    JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一 ...

  7. MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  9. Java java jdbc thin远程连接并操作Oracle数据库

    JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...

随机推荐

  1. acm经验(转)

    先简单介绍一下自己: 高中在OI打过一段时间酱油,大一后暑假进入ACM集训队,到大三寒假,总共一年半的ACM生涯. 总共参加了四场比赛:区域赛一银(2013长春)一铜(2013杭州)一铁(2012金华 ...

  2. 你知道如何优化Join语句吗?

    join语句的两种算法,分别是:NLJ和BNL 测试数据: create table t1(id int primary key, a int, b int, index(a)); create ta ...

  3. 解决mybatis中 数据库column 和 类的属性名property 不一致的两种方式

    解决方式way1:resultMap (1)studentMapper.xml <!-- 当数据库的字段名 和 类的属性名 不一致的时候的解决方式:2种 way1--> <selec ...

  4. (数据科学学习手札71)在Python中制作个性化词云图

    本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 词云图是文本挖掘中用来表征词频的数据可视化 ...

  5. C# II: Class ViewModelBase and RelayCommand in MVVM

    好久不写WPF和MVVM,新建一个Project后,想起来ViewModelBase和RelayCommand没有.以下Code摘自MSDN上的Article:Patterns - WPF Apps ...

  6. 关于@Autowired 与@Resource的

    @Autowired注解是spring自己定义的,@Resource是由JSR-250规范定义的注解. @Resource的作用相当于@Autowired,只不过@Autowired按byType自动 ...

  7. [quartusⅡ] 使用quartusⅡ的过程中,遇到过的一些“软件上的问题”

    1.USB blaster的驱动在设备管理器上点“更新驱动软件”,更新不了,说什么哈希值不在指定目录下,如下图, 解决方法是,https://blog.csdn.net/rdgfdd/article/ ...

  8. (二十六)golang--切片

    基本介绍: 切片是数组的引用: 切片的使用和数组类似: 切片的长度是可以变化的: 切片的定义 var a []int,注意和数组定义的区别: 切片不仅可以使用len函数,还有cap函数来计算切片的容量 ...

  9. nyoj 366 D的小L (全排列)

    D的小L 时间限制:4000 ms  |  内存限制:65535 KB 难度:2   描述       一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给 ...

  10. 解构ffmpeg(一)

    ffmpeg应用程序项目将其核心库libav*的使用或编程抽象成FilterGraph,InputFile,OutputFile,InputStream,OutputStream,InputFilte ...