JDBC 简介
JDBC:Java Database Connection,表示数据库连接,是 java 中专门提供的一组用于操作数据库的标准,所有的数据
库生产商如果要是想为 java 提供支持,则必须支持此标准,既然是标准的话,所以说 JDBC 实际上是一套类库的接口。
主要的操作类和接口:Connection 接口、Statement 接口、PreapredStatement 接口、ResultSet 接口、DriverManager 类
JDBC 的主要分类:
1、 JDBC-ODBC 桥连接:使用微软的 ODBC 进行数据库的连接,JDBC ODBC DB,因为中间加入了一
个 ODBC 的过渡,所以这样的操作性能将是非常低的。所以,只要是开发就不会有人使用此方式。但是此种方式是
SUN 本身提供的最原始连接,所以所有的操作类库都是最新的。
2、 JDBC 连接,直接使用各个数据库生产商提供的数据库连接程序,进行数据库操作,JDBC DB,这样的
性能较高,所以在开发中基本上都使用此种形式。
3、 JDBC 网络连接,在正常操作中,不可能每一台电脑上都安装一个数据库。通过网络连接不同主机的数据
库,此操作也将由各个数据库生产商提供支持。
通过以上的表结构,写出数据库的创建脚本:
DROP TABLE person ;
CREATE TABLE person(
pid INT(11) PRIMARY KEY NOT NULL ,
name VARCHAR(20) NOT NULL ,
sex CHAR(1) NOT NULL ,
birthday DATE ,
salary FLOAT(7,2)
) ;
连接数据库
1、 数据库的驱动程序地址:jdbc:mysql://localhost:3306
2、 数据库的连接地址:mysql://localhost:3306/test
3、 用户名:root
4、 密码:root
但是,还需要以下的几个类支持:
1、 Class 类,通过 Class 类加载驱动程序
2、 DriverManager 类,通过 DriverManager 管理驱动,并可以取得连接,连接时需要地址、用户名、密码
3、 连接通过 Connection 进行接收
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
System.out.println(conn);
// 3、关闭
conn.close();
使用 Statement 接口进行数据库的更新操作
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
String sql = "INSERT INTO person(pid,name,sex,birthday,salary) "
+ "VALUES (1,'张三','男',now(),899)";
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
stmt.executeUpdate(sql); // 执行SQL语句
// 3、关闭
stmt.close();
conn.close();
执行数据更新操作
使用 UPDATE 语法就可以完成数据库的更新操作:UPDATE 表名称 SET 列=值,… WHERE 更新条件
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
int pid = 3;
String name = "赵六";
String sex = "女";
float salary = 9000.0f;
String sql = "UPDATE person SET name='" + name + "',sex='" + sex
+ "',salary=" + salary + " WHERE pid=" + pid;
System.out.println(sql);
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
stmt.executeUpdate(sql); // 执行SQL语句
// 3、关闭
stmt.close();
conn.close();
执行数据库删除操作
使用 DELETE 执行数据库的删除操作,语法:DELETE FROM 表名称 WHERE 删除条件。
删除编号是 4 的人员
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
int pid = 4;
String sql = "DELETE FROM person WHERE pid=" + pid;
System.out.println(sql);
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
int len = stmt.executeUpdate(sql); // 执行SQL语句
System.out.println("更新了" + len + "行数据!");
// 3、关闭
stmt.close();
conn.close();
使用 ResultSet 接口接收查询结果
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
ResultSet rs = null; // 接收查询结果
// 在查询时,必须明确的写出要查询的具体列,这是一个明确的开发标准
String sql = "SELECT pid,name,sex,birthday,salary FROM person";
System.out.println(sql);
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
rs = stmt.executeQuery(sql);// 执行查询操作
while (rs.next()) {// 指针向下移动
int pid = rs.getInt("pid");
String name = rs.getString("name");
String sex = rs.getString("sex");
Date date = rs.getDate("birthday");
float salary = rs.getFloat("salary");
System.out.println("编号:" + pid + ",姓名:" + name + ",性别:" + sex
+ ",生日:" + date + ",工资:" + salary);
}
// 3、关闭
rs.close();
stmt.close();
conn.close();