目录 |
JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库。JDBC也是java核心类库的一部分。
JDBC的最大特点是它独立于具体的关系数据库。与ODBC (Open Database Connectivity)类似, JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections), SQL语句(SQL statements), 结果集(result sets)以及其它的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。使用JDBC, 所有Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。
要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁。
通常,Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager载入指定的JDBC drivers, 以后就可以通过JDBC API来存取数据库。
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
这里提供一个具体的例子,step by step ,为刚刚接触数据库的人提供一个更为直观感性的认识。
我们具体使用 java应用程序连接 mysql 数据库,整体步骤如下:
1、java 开发环境的准备 2、安装 java IDE以便开发 (如 Eclipse ) 3、安装 mysql 数据库 4、下载 数据库对应的 jdbc driver 5、将 jdbc driver 库导入到程序环境中 6、连接测试
1、java 开发环境的准备:配置java开发环境——JDK的配置。 步骤网上很多比如:点这里
2、搜索下载合适你系统(64bit/32bit)的IDE, 比如 Eclipse :点这里去搜索
3、下载并安装mysql数据库,各个平台官方下载与安装教程
按照安装教程,设置好默认用户(root)的密码,安装完毕后,可以打开终端命令行登录数据库:(更加具体的使用,请访问 官方使用手册 )
mysql -u root -p
创建待会要测试的数据库, 并创建要测试的表:
create database test; use test; create table temp(name varchar(20), password varchar(20));
这时应该可以使用语句查看到你的表了:
show tables; // 查看当前数据库所有的表 describe temp; // 查看表的具体字段信息 select * from temp; // 查看表的数据
4、下载mysql 提供的 jdbc driver ,点这里 ( Windows下载 (mysql-connector-java-5.1.40.zip) Linux下载: (mysql-connector-java-5.1.40.tar.gz))
下载好后解压,任意路径都可以,不要以后随便给删掉就可以。
5、将jdbc driver 库导入到Eclipse 环境中
1)在 Eclipse 中建立用户库(以后不同的项目,要连接数据库,直接为工程加入这个用户库就好了):
打开Eclipse,进入菜单windows->prefrences,进入Java->Build Path->user libraries,选择新建,命名为mysql,路径为:.../mysql-connector-java-5.X.XX-bin.jar
2) 创建java project,命名为testmysql,右键项目名称,选择Build Path->Add libraries,从列表中选择user library,在next界面中选择上面部署的mysql安装包即可;
6、现在可以开始写代码连接刚才的数据库了。在testmysql工程下新建class,命名为Test.java文件:
public class Test { public static void main(String args[]) { try { Class.forName("com.mysql.jdbc.Driver"); // 加载MYSQL JDBC驱动程序 System.out.println("Success loading Mysql Driver!"); } catch (Exception e) { System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); } try { Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "XXXXXXX"); //test 为你的数据库名称,XXXXXXX 这里改为你自己的密码 System.out.println("Success connect Mysql server!");
//插入一行数据 PreparedStatement Statement = connect .prepareStatement("INSERT INTO temp(name,password) VALUES(?,?)"); Statement.setString(1, "name3"); Statement.setString(2, "password3"); Statement.executeUpdate(); // 获取temp表的数据来打印 Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from temp");// temp 为表的名称 System.out.println("query result:"); while (rs.next()) { System.out.println(rs.getString("name")+" :"+rs.getString("password") ); } } catch (Exception e) { System.out.print("get data error!"); e.printStackTrace(); } } }
运行程序,执行完毕后查看数据库,此时应该可以看到:
mysql> select * from temp; +-------+-----------+ | name | password | +-------+-----------+ | name3 | password3 | +-------+-----------+ 1 row in set (0.00 sec)
到这里,例子就讲完了,希望对初学者有所帮助 :)