JDBC是什么
JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语言编程中与数据库连接的API.
使用Java代码发送sql语句的技术就是JDBC技术。即JDBC是一个接口,用于不同的数据库(oracle、mysql、sqlserver。。)的操作。
java.sql和javax.sql是JDBC 4.0的主要jar包。
JDBC允许Java程序包含与数据库无关的代码(同样的代码,只需要指定使用的数据库类型,不需要重修改数据库查询或操作代码)。
JDBC架构
JDBC API支持用于数据库访问的两层和三层处理模型,但通常,JDBC体系结构由两层组成:
- JDBC API:提供应用程序到JDBC管理器连接。
- JDBC驱动程序API:支持JDBC管理器到驱动程序连接。
以下是架构图,它显示了驱动程序管理器相对于JDBC驱动程序和Java应用程序的位置
JDBC简单应用实例
一.安装数据库Mysql ,本例子使用的是mysql
二.下载驱动Mysql-Connector/J
要在程序中连接mysql数据库对其进行操作,我们还需要下载驱动Mysql-Connector/J,这是mysql为java的数据库连接开发的库,同时官网上也有类似为其他语言的库,比如Connectors/.Net , Connectors/php , Connectors/C++.
点击下载
下载zip包,解压后找到mysql-connector-java-5.1.47.jar包,导入到java程序即可,完成准备工作。
三.构建表
具体命令可以看:
在mysql下新建数据库firstdb
在firstdb下新建一张表xtb. 表结构为user_id,user_name,user_sex,user_phone
然后插入几条数据,最后完成如下:
四.编写程序,新建common类,应用jdbc来对数据库中的xtb表进行增删查改。
代码如下:
package jdbc_test;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.Statement;public class common { // JDBC 驱动名 及数据库 URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/firstdb"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "root"; static final String PASS = ""; public static void main(String[] args) throws Exception { Connection conn = null; Statement stmt = null; try { // 注册 JDBC 驱动 // 把Driver类装载进jvm Class.forName("com.mysql.jdbc.Driver"); // 打开链接 System.out.println("连接数据库..."); conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS); // 执行查询 System.out.println(" 实例化Statement对..."); stmt = (Statement) conn.createStatement(); String sql = "SELECT * FROM xtb"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { // 通过字段检索 int id = rs.getInt("user_id"); String name = rs.getString("user_name"); String sex = rs.getString("user_sex"); String phone = rs.getString("user_phone"); // 输出数据 System.out.print("ID: " + id); System.out.print(", 名字: " + name); System.out.print(",性别: " + sex); System.out.print(", 手机号码:" + phone); System.out.print("\n"); } //更新update String update_sql = "update xtb set user_name=\"jerry\",user_phone =\"0123\" where user_id>4"; stmt.execute(update_sql); //增加insert String inset_sql = "insert into xtb (user_name, user_sex, user_phone) values(\"jom\", \"nan\", \"123864979\")"; int i = stmt.executeUpdate(inset_sql); //删除 delete String delete_sql = "delete from xtb where user_id>4"; stmt.execute(delete_sql); // 完成后关闭 rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch (Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); } finally { // 关闭资源 if (stmt != null) stmt.close(); if (conn != null) conn.close(); } System.out.println("jdbc_test_end!"); }}
运行代码,结果如下: