有了 JDBC,向各种关系数据库发送 SQL 语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,为访问Informix 数据库又写另一个程序,等等。您只需用 JDBC API 写一个程序就够了,它可向相应数据库发送 SQL 语句。而且,使用 Java 编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将 Java 和 JDBC 结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。
Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。
JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和 UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用 Java 编程语言,对从 Java中便捷地访问数据库的要求也在日益增加。
JDBC的优点如下:
1.JDBC和ODBC十分相似,有利于软件开发人员理解
2.JDBc使软件开发人员从复杂的驱动程序编写工作中解脱处理啊,可以完整的专注于业务逻辑的开发。
3.JDBC支持多种关系型数据库,是软件的可移植性大大增加。
4.JDBC的API是面向对象的,软件开发人员可以将常用的方法进行二次封装,从而提高代码的重用性;
JDBC的缺点:
1.通过JDBC访问数据库时速度将受到一定的影响。
2.虽然JDBC API是面向对象的,但是通过JDBc访问数据库依然是面向关系的。
3.JDBC提供了不同数据库厂商的支持,将对数据源带来影响。
一.JDBC 的用途是什么?
简单地说,JDBC 可做三件事:
与数据库建立连接,
发送 SQL 语句,
处理结果。
JDBC连接数据库
1.加载JDBC驱动程序
2.提供JDBC连接URL
3.创建数据库的连接
4.创建一个Statement
5.执行SQL语句
6.处理结果
7.关闭JDBC对象
下面将介绍一个用mysql连接JDBC的简单的查询数据的过程:
1.建一个数据库名为:student_jdbc
2.建一个表名为:student
代码如下:
/*
MySQL Data Transfer
Source Host: localhost
Source Database: student_jdbc
Target Host: localhost
Target Database: student_jdbc
Date: 2013/9/28 17:41:14
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
CREATE TABLE `student` (
`id` varchar(255) NOT NULL,
`name` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `student` VALUES ('1', '谢娜', '12');
INSERT INTO `student` VALUES ('2', '叶烁', '34');
INSERT INTO `student` VALUES ('3', '张杰', '12345');
3.新建一个java工程,在工程下,粘贴一个mysql的驱动包,然后点击这个驱动包,有一餐单,点击“Bulid Path”即可。
4.写一个类,java代码如下:
运行结果:import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCText { public static void main(String[] args) { //1.加载JDBC驱动 String driver ="com.mysql.jdbc.Driver"; try { Class.forName(driver); //2.提供JDBC连接的URL String url="jdbc:mysql://localhost:3306/student_jdbc"; //student_jdbc是datebase的名字 String user="root";//用户名 String password="12345";//密码 Connection conn = DriverManager.getConnection(url, user, password); /*String url="jdbc:mysql://localhost:3306/student_jdbc?user=root&password=12345"; Connection conn = DriverManager.getConnection(url); //两种方法 */ if(conn!=null) { System.out.println("连接成功!"); }else { System.out.println("连接失败"); } //3.创建一个Statement Statement st=conn.createStatement(); //执行SQl语句 String sql="Select * from student"; ResultSet rs = st.executeQuery(sql); while(rs.next()) { String id=rs.getString("id"); String name=rs.getString("name"); String psw=rs.getString("password"); System.out.println("id:"+id+"name:"+name+"password:"+psw); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
连接成功!
id:1name:谢娜password:12
id:2name:叶烁password:34
id:3name:张杰password:12345