JDBC(Java Database Connectivity,Java数据库连接),是Java访问数据库的程序接口,由一组用Java语言编写的类与接口组成.JDBC实际上就是由Java实现的数据库访问中间件。
JDBC 连接数据库步骤
1.在项目中导入驱动
相关链接
- Mysql JDBC驱动包----MySQL Connector/J 下载地址:请点这里
下载驱动包提取mysql-connector-java-5.1.38-bin.jar包
右击 项目-> Build Path -> Configure Build Path -> Add Exteranl JARs...选择mysql-connector-java-5.1.38-bin.jar文件
2.在项目中加载JDBC驱动程序
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。成功加载后,会将Driver类的实例注册到DriverManager类中。
- Mysql 驱动名:com.mysql.jdbc.Driver
- 加载方式: Class.forName(驱动名);
3.连接及关闭数据库
要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
- DriverManager 驱动管理类,主要负责获取一个数据库的连接;
- static Connection getConnection(String url,String user,String password)试图建立到给定数据库URL 的 连接。
- MySQL 数据库的连接地址格式:" jdbc:mysql://IP 地址:端口号/数据库名称 "
- Connection 接口与特定数据库的连接(会话)。
- void close() 立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
4.代码演示
代码1:
package cn.iborder.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class test1 {
//驱动名称
private static String jdbcDriver="com.mysql.jdbc.Driver";
//数据库地址
private static String url="jdbc:mysql://localhost:3306/test";
//数据库用户名
private static String user="root";
//数据库密码
private static String password="root";
public static void main(String[] args) {
try {
Class.forName(jdbcDriver); //加载驱动
System.out.println("JDBC驱动加载成功");
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
// e.printStackTrace();
System.out.println("JDBC驱动加载失败");
}
Connection con=null;
try {
//连接数据库
con = DriverManager.getConnection(url, user, password);
System.out.println("连接数据库成功");
} catch (SQLException e) {
// TODO 自动生成的 catch 块
// e.printStackTrace();
System.out.println("连接数据库失败");
}finally{
try {
//关闭数据库
con.close();
System.out.println("关闭数据库成功");
} catch (SQLException e) {
// TODO 自动生成的 catch 块
// e.printStackTrace();
System.out.println("关闭数据库失败");
}
}
}
}
执行结果:
JDBC驱动加载成功
连接数据库成功
关闭数据库成功
代码2:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestSqlConnect {
public static void main(String[] args) {
// TODO Auto-generated method stub
final String SQL_DRIVER = "com.mysql.jdbc.Driver"; //jdbc驱动
final String SQL_URL = "jdbc:mysql://localhost:3306/test"; //数据库地址
final String SQL_USER = "root"; //数据库用户名
final String SQL_PASSWORD = "root"; //数据库密码
Connection connSQL = null;
Statement statement = null;
String sql = null;
ResultSet resultSet = null; //结果集
try {
Class.forName(SQL_DRIVER);
connSQL = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PASSWORD);
statement = connSQL.createStatement();
sql = "select * from user";
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
int uid = resultSet.getInt("uid");
String username = resultSet.getString("username");
System.out.println("uid: " + uid+" , username: " + username);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
System.out.println("加载驱动失败!");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
System.out.println("连接数据库失败!");
} finally {
try {
resultSet.close();
statement.close();
connSQL.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
JDBC API提供了以下接口和类:
-
DriverManager: 这个类管理数据库驱动程序的列表。内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
-
Driver: 此接口处理与数据库服务器通信。很少直接与驱动程序对象。相反,使用DriverManager中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息
-
Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过唯一的连接对象。
-
Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
-
ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,让您可以通过移动它的数据。
-
SQLException: 这个类处理发生在一个数据库应用程序的任何错误。
有下列涉及构建JDBC应用程序的六个步骤:
-
导入数据包 . 需要包括含有需要进行数据库编程的JDBC类的包。大多数情况下,使用 import java.sql.* 就可以了.
-
注册JDBC驱动程序. 需要初始化驱动程序,可以与数据库打开一个通信通道。
-
打开连接. 需要使用DriverManager.getConnection() 方法创建一个Connection对象,它代表与数据库的物理连接。
-
执行查询 . 需要使用类型声明的对象建立并提交一个SQL语句到数据库。
-
从结果集中提取数据 . 要求使用适当的关于ResultSet.getXXX()方法来检索结果集的数据。
-
清理环境. 需要明确地关闭所有的数据库资源相对依靠JVM的垃圾收集。
Statement接口的常用方法
boolean execute()
允许执行查询语句、更新语句、DDL语句。返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。返回值是更新的记录数量