在 Java 开发时,数据库知识技术的掌握非常重要,而 JDBC 是数据库开发的基础,Java 开发工程师通过 JDBC 来实现数据库与 Java 之间的连接。实现数据库的访问,及基本的数据库操作,像增删改查什么的。
总的来说数据库开发使用 JDBC 流程如下:
(1)加载驱动程序
(2)创建数据库连接对象
(3)执行 SQL 语句
(4)获取返回的执行结果
(5)清理资源关闭相关连接对象
《1》加载驱动
JDBC 中的 Driver 类DriverManager 类。其中 Driver 类是一个接口,定义了各个驱动的程序实现的方法。后者是 Driver 的管理类,实现接口中的方法。实现加载驱动。加载驱动用到的方法:Class.forName(driver_name);该方法实现注册驱动程序,这是数据库开发的前提加载驱动。
例如下面实例的 mysql 驱动的加载:
Class.forName(“com.mysql.jdbc.Driver");
《2》创建连接对象
这一步是在加载驱动后,创建相关对象才能与数据库进行交互。通过 DriverManager 类的 getConnection(); 方法调用驱动程序,即上一步加载的驱动程序。以下均已 Mysql 为例。该方法,返回的是 JDBC Connection 对象。基于此对象可以执行 sql 语句,基于此对象的 createStatement() 的方法创建 Statement 对象,来具体执行 sql 语句实现,对数据库的开发操作。
Connection conn = DriverManager.getConnection("jdbc:mysql://","自己设置的用户名","自己设置的密码");
//三个参数,数据库路径 URL ;数据库用户名 root;数据库用户密码 password;
《3》执行 sql 语句
需要数据库的连接对象 Connection 来创建 Statement 对象,Statement 对象就是用来保存承载要执行的 sql 语句;就是将 sql 先保存下来,然后在通过 executeQuery() 及 execute() 方法执行 sql 语句,即Statement 对象所要执行的 sql 语句。前者能返回查询结果,用 ResultSet 对象接收;后者是执行 插入更新删除等类型的 sql 语句,返回数据库中执行语句后受影响的记录数,是 Int 型。写法如下:
Statement st = conn.createStatement(); String sql = "select * from table1"; ResultSet rs = st.executeQuery(sql);
《4》获取执行结果
对于执行查询语句的结果是,返回结果在ResultSet 对象中,是个数据集合需要循环取出;
注意:该对象具有指向当前数据行的指针, nex() 子身后一,读取下一行数据。若其他数据,返回 int 型结果,接收该结果判断,该结果大小大于 0 即是 sql 语句执行成功。
while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); }
《5》清理资源
关闭打开的相关流。主要是不关闭会占一定的内存空间,在一些情况下也会报异常。判断一下是否为空,不为空关闭。
finally{ try{ if (rs != null) rs.close(); if(stmt != null) stmt.close(); if(conn != null) conn.close(); } catch(SQLException){ //ignore } }
下面是具体的例子,成功连接数据库并演示查询语句的执行,及结果接收。
JDBC 是什么:
网上有很详细的解释,这里简单介绍。
全称:Java Data Base Connectivity,java 数据库连接
JDBC 能做什么:
1.用 java 连接数据库
2.执行 sql 语句
3.接收处理 sql 语句的执行结果
二、所用平台:
Mysql 、Myeclipse(也可用其他,以下在平台新建的包名,类名,数据库,表名的命名自定义)
1.在 Mysql 下新建数据库 mysql2 ,然后在该库内新建表 teacher 初始化几组数据,以供测试连接
2.在 Myeclipse 下新建 web project 工程 TestJDBC ,在对应路径下导入用于连接的包
(网上都有,我所用包如下:附路径)
/TestJDBC/WebRoot/WEB-INF/lib/mysql-connector-java-5.0.8-bin.jar
(1.)在 src 下新建包 util ( 用于写数据库连接的类 ) test( 写测试连接的类 )
(2.)然后在对应包下新建类 DBO (连接数据库),Test_DBO(测试连接是否成功),Test_Select(测试 sql 语句的执行,与结果的处理)
1 Mysql 环境下的操作:建数据库,建表,插入数据
create database mysql2; use mysql2; create table teacher( id int(11), name varchar(20), password varchar(20) );
插入语句 insert into table_name(字段1,字段2) values(属性值1, 属性值2);
insert into teacher(id, name, password) values(1, 'zhangsan', '123456');
类似的多插入几条即可
2 (1.)新建 web project 工程TestJDBC ,导入包后,对应 src 下新建连接、测试包,对应包下写测试类等。
代码如下:DBO.java
(2.)Test_DBO.java 测试连接是否成功,运行后结果显示在 Console 控制台
代码如下:
(3.)测试 JDBC 的语句发送执行能力,结果处理功能等。编译运行后结果显示在 Console 控制台
Test_Select.java 代码如下:
以上就是通过两大平台展现 JDBC 的作用。
谢谢览阅 ^_^