在了解Spring的DAO模块时需要有一定的数据库基础,Java语言与数据库连接使用的是JDBC,所以有必要学习下JDBC的内容。
1.JDBC介绍
JDBC (Java DB Connection)---Java数据库连接。JDBC是一种可用于执行SQL语句的JAVA API(ApplicationProgramming Interface应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯JAVA语言编写完整的数据库应用程序。JDBC代表JAVA数据库连接。它是一个软件层,允许开发者在JAVA中编写客户端/服务器应用。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!”。
2.操作步骤
JDBC可以连接不同的数据库,不同的数据库也可以被不同的工具连接,但在连接时基本都是固定的几个步骤。
1)、驱动引入
JDBC是一种可用于执行SQL语句的JAVA API(ApplicationProgramming Interface应用程序设计接口)。它是对外开放的接口,数据库提供商实现了这些接口,这些接口的组合就是驱动。数据库有好多种,例如MySQL、Oracle等,于是乎需要注册不同的驱动来操作对应的数据库,注册驱动也得要有驱动才是,所以首先是将驱动引入项目。
2)、注册驱动
引入驱动之后应用程序也不知道是用的什么数据库,只是把驱动下载了下来放到项目中,所以得注册一下才知道是谁,注册之后会返回对应的驱动管理对象,就和入职一样,你到公司了但不报到那也不知道来了没来,报到了才会有针对个人的流程。
3)、创建连接
数据库和应用程序是分隔开来的,数据库可能存放在远程,那怎么和数据库搭上呢,这就需要连接。
4)、执行操作
连接上之后要干嘛呢,不能一直连着不干事情啊,这也是资源的一种浪费,所以连接之后执行数据库的操作,增删改查等。
5)、返回结果
增删改查操作结束之后,总要有个结果,不然怎么知道成功与否,查询的话会返回查询的数据,增加、删除、修改会返回影响的行数。
6)、释放资源
把结果也返回了,但不能老连着数据库啊,这样也占用资源,创建的对象也没释放,还占空间,所以用完了就把它关掉。
3.Statement的使用
Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行静态 SQL 语句并返回它所生成结果的对象。
在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。
在使用Statement之前先进行数据准备,这里在本地mysql中创建了一个数据库daodemodb和一张表t_user,并在表中增加了几条数据用来测试。
/* 数据库创建 */ CREATE DATABASE `daodemodb` /*!40100 DEFAULT CHARACTER SET utf8 */; /*创建测试表*/ CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) DEFAULT NULL, `age` int(11) DEFAULT NULL, `money` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*数据准备*/ insert into t_user(name,age,money) values ('张三','24',666.66), ('李四','25',888.88), ('王二','26',999.99), ('小明','27',555.55), ('小赵','28',333.33)