Java数据库连接(JDBC:Java DataBase Connectivity)用于在Java程序中实现数据库操作的功能,它提供了执行SQL语句以及访问各种数据库的方法,并为各种数据库提供了统一的操作接口,java.sql包中包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下七个步骤:
(1)加载JDBC驱动器,将数据库的JDBC驱动加载到classpath下;
(2)加载JDBC驱动,并将其注册到DriverManager中。一般使用反射Class.forName(String driveName);
(3)建立数据库连接,取得Connection对象。一般通过DriverManager,getConnection(url,username,password)方法实现;
(4)建立Statement对象或者PreparedStatement对象;
(5)执行SQL语句;
(6)访问结果集ResultSet对象;
(7)关闭对象,释放资源。
下面用一个案例进行说明:
package JavaWeb;
import java.sql.*;
/**
* @author PC
* 20180717
*/
public class JDBCTest {
/*
* 数据库操作:
* crate TABLE Student(
* id INT PRIMARY KEY,
* NAME VARCHAR(20),
* age INT
* );
*/
public static void main(String[] args) throws Exception{
String user = "root";
String password = "123456";
//url表示连接数据库的字符串
String url = "jdbc:mysql://localhost:3306";
String driver = "com.mysql.jdbc.Driver";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//加载JDBC驱动
Class.forName(driver);
//建立数据库连接,取得Connection对象
conn = DriverManager.getConnection(url,user,password);
//获得Statement对象
stmt = conn.createStatement();
//执行SQL语句
stmt.execute("insert into Student values(1,'Tom',18)");
stmt.execute("insert into Student values(2,'David',20)");
//访问结果集
rs = stmt.executeQuery("select * from Student");
while(rs.next()){
System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getInt(3));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
//先开通的后关闭
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
}