如果你的 JDBC 连接是处于自动提交模式下,该模式为默认模式,那么每句 SQL 语句都是在其完成时提交到数据库。对简单的应用程序来说这种模式相当好,但有三个原因你可能想关闭自动提交模式,并管理你自己的事务-为了提高性能为了保持业务流程的完整性使用分布式事务你可以通过事务在任意时间来控制以及更改应用到数据库。
JDBC 驱动程序在将 Java 数据类型发送到数据库之前,会将其转换为相应的 JDBC 类型。对于大多数数据类型都采用了默认的映射关系。例如,一个 Java int 数据类型转换为 SQL INTEGER。通过默认的映射关系来提供驱动程序之间的一致性。当你调用 PreparedStatement 中的 setXXX()方法或 CallableStatement 对象或 ResultSet.
SQL 语句从数据库查询中获取数据,并将数据返回到结果集中。SELECT 语句是一种标准的方法,它从一个数据库中选择行记录,并显示在一个结果集中。 java.sql.ResultSet 接口表示一个数据库查询的结果集。一个 ResultSet 对象控制一个光标指向当前行的结果集。术语“结果集”是指包含在 ResultSet 对象中的行和列的数据。
一旦我们获得了数据库的连接,我们就可以和数据库进行交互。JDBC 的 Statement,CallableStatement 和 PreparedStatement 接口定义的方法和属性,可以让你发送 SQL 命令或 PL/SQL 命令到数据库,并从你的数据库接收数据。在数据库中,它们还定义了帮助 Java 和 SQL 数据类型之间转换数据差异的方法。下表提供了每个接口的用途概要,根据实际目的决定使用哪个接口。
在你安装相应的驱动程序后,就可以用 JDBC 建立一个数据库连接。编写建立一个 JDBC 连接的程序是相当简单的。下面是简单的四个步骤-导入 JDBC 包:在你的 Java 代码中,用 import 语句添加你所需的类。注册 JDBC 驱动程序:这一步会导致 JVM 加载所需的驱动程序到内存中执行,因此它可以实现你的 JDBC 请求。
什么是 JDBC 驱动程序?JDBC 驱动实现了 JDBC API 中定义的接口,该接口用于与数据库服务器进行交互。例如,使用 JDBC 驱动程序可以让你打开数据库连接,并通过发送 SQL 或数据库命令,然后通过 Java 接收结果。java.sql 包中附带的 JDK,包含了定义各种类与他们的行为和实际实现,这些类都在第三方驱动程序中完成。第三方供应商在他们的数据库驱动程序中都实现了 java.
本章提供了如何创建一个简单 JDBC 应用程序的示例。这个示例演示如何打开一个数据库连接,执行 SQL 查询,并显示结果。所有在这个模版示例中提到的步骤,将在本教程的后续章节中进行详细描述。创建 JDBC 应用程序构建一个 JDBC 应用程序包括以下六个步骤-导入数据包:需要你导入含有需要进行数据库编程的 JDBC 类的包。大多数情况下,使用 import java.sql. 就足够了。
在开始使用 JDBC 之前,你必须如下面所示设置你的 JDBC 环境。我们假设你正在使用的是 Windows 平台。安装 Java从 Java 官方网站上安装 J2SE Development Kit 6.0 (JDK 5.0)。请按如下所述设置环境变量-JAVA_HOME : 该环境变量应该指向你安装的JDK目录,例如:C:\Program Files\Java\jdk1.6.0。
结构化查询语言(SQL)是一种标准化的语言,它可以让你对数据库进行操作,如创建项目,读取内容,更新内容和删除项目。SQL 支持你可能会使用到的任何数据库,它可以让你编写独立于底层数据库的数据库代码。本章介绍了 SQL,这是一个了解 JDBC 概念的先决条件。在经历了这一章后,你将能够创建,读取,更新和删除(通常被称为 CRUD 操作)一个数据库中的数据。
什么是 JDBC?JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。制作到数据库的连接。创建 SQL 或 MySQL 语句。执行 SQL 或 MySQL 查询数据库。查看和修改所产生的记录。
JDBC API 是一个 Java API,它可以访问任何类型的表格数据,特别是可以访问存储在关系数据库里的数据。JDBC 可以用 Java 语言在各种平台上实现,比如 Windows 系统, Mac OS 系统,和各种版本的 UNIX 系统。适用人群本教程是给那些想详细了解 JDBC 框架以及想实际使用这些框架的 Java 程序员编写的。学习前提在学习本教程之前,你需要掌握 Java 编程语言。
求解最小公倍数和最大公约数是我们开始编程的时候经常需要练习的题目。从题面上看,好像我们需要求解的是两个题目,但其实就是一个题目。那就是求最大公约数?为什么呢?我们可以假想这两个数m和n,假设m和n的最大公约数是a。那么我们可以这样写:m = b a;n = c a;
可变参数是C语言编程的一个特色。在我们一般编程中,函数的参数个数都是确定的,事先定下来的。然而就有那么一部分函数,它的个数是不确定的,长度也不一定,这中间有什么秘密吗?其实,我们可以回忆一下哪些函数是可变参数的函数?其实也就是sprintf、printf这样的函数而已。那么这些函数有什么规律吗?关键就是在这个字符串上面。
在前面的博客当中,其实我们已经讨论过寻路的算法。不过,当时的示例图中,可选的路径是唯一的。我们挑选一个算法,就是说要把这个唯一的路径选出来,怎么选呢?当时我们就是采用穷尽递归的算法。然而,今天的情形有点不太一样了。在什么地方呢?那就是今天的路径有n条,这条路径都可以达到目的地,然而我们在挑选的过程中有一个要求,那就是挑选的路径距离最短?
克鲁斯卡尔算法是计算最小生成树的一种算法。和prim算法(上,中,下)按照节点进行查找的方法不一样,克鲁斯卡尔算法是按照具体的线段进行的。现在我们假设一个图有m个节点,n条边。首先,我们需要把m个节点看成m个独立的生成树,并且把n条边按照从小到大的数据进行排列。
回数的概念比较好玩,就是说有这么一个字符串str, 长度为n, 现在index开始从0->index/2遍历,那么str[index] = str[n-1-index],那么这种数据就是我们通常说的回数。比如说a = “a”是回数, a = “aba”是回数, a = "strarts"也是回数。因为这道题目比较简单,所以很多公司都喜欢用它来检查程序员的基本编程能力。
前面说到了哈夫曼树的创建,那下面一个重要的环节就是哈夫曼树的排序问题。但是由于排序的内容是数据结构,因此形式上说,我们需要采用通用数据排序算法,这在我之前的博客里面已经涉及到了(通用算法设计)。所以,我们所要做的就是编写compare和swap两个函数。
在数据传输的过程当中,我们总是希望用尽可能少的带宽传输更多的数据,哈夫曼就是其中的一种较少带宽传输的方法。哈夫曼的基本思想不复杂,那就是对于出现频率高的数据用短字节表示,对于频率比较低得数据用长字节表示。
关注时代Java