一、JDBC概念
JDBC是SUN公司定义的Java操作数据库的规范(一系列接口)。通过JDBC可以操作任何的关系数据库(前提是有具备数据库JDBC驱动程序)
JDBC是SUN公司注册的一个技术商标。
JDBC的全称是Java Database Concetivty,意思是Java数据库连接。
二、JDBC的功能
连接数据库
发送并执行SQL语句
获取处理结果
三、JDBC的原理
JDBC定义了一组操作数据库的接口,不同的数据库厂商提供了JDBC接口的实现,这个实现称为JDBC驱动。这样就可以通过JDBC接口来对不同数据库获得统一的操作。
四、JDBC中关键的几个类
1、java.sql.DriverManager: 管理一组 JDBC 驱动程序的基本服务。
2、java.sql.Connection: 与特定数据库的连接(会话)。
3、java.sql.Statement: 用于执行静态 SQL 语句并返回它所生成结果的对象。
4、java.sql.ResultSet: 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
五、JDBC操作数据库的一般步骤
1、注册JDBC数据库驱动程序
2、创建数据库连接Connection
3、通过Statement向数据库发送SQL语句
4、执行SQL语句,获取返回结果。
六、实践
CREATE TABLE teacher (
id bigint(20) NOT NULL auto_increment COMMENT 'ID(自增型)',
name varchar(24) default NULL COMMENT '姓名',
salary int(11) default NULL COMMENT '薪水',
remark varchar(120) default NULL COMMENT '备注',
PRIMARY KEY (id)
);
insert into teacher(id,name,salary,remark) values
(1,'秦老师',3000,'讲师级别'),
(2,'王老师',1700,'助教级别'),
(3,'江老师',1050,'书童级别'),
(4,'李老师',1200,'伴读级别');
import java.sql.*;
public class TestJDBC {
public static String dburl = "jdbc:mysql://localhost:3306/testdb";
public static String user = "root";
public static String password = "xiaohui";
public static void main(String args[]) throws ClassNotFoundException, SQLException {
String testsql = "select t.id,t.name,t.salary,t.remark from teacher t \n" +
"where t.salary>1500";
//1:注册驱动类
Class.forName("com.mysql.jdbc.Driver");
//2:创建数据库连接
Connection conn = DriverManager.getConnection(dburl, user, password);
//3:创建执行SQL的对象
Statement stmt = conn.createStatement();
//4:执行SQL,并获取返回结果
ResultSet rs = stmt.executeQuery(testsql);
//5:处理返回结果,此处打印查询结果
while (rs.next()) {
System.out.print(rs.getLong("id") + "\t");
System.out.print(rs.getString("name") + "\t");
System.out.print(rs.getInt("salary") + "\t");
System.out.print(rs.getString("remark") + "\t");
System.out.println();
}
//6:关闭数据库连接
conn.close();
}
}
运行结果:
1 秦老师 3000 讲师级别
2 王老师 1700 助教级别
Process finished with exit code 0
使用这个工具类
import java.sql.*;
public class Test {
public static void main(String args[]) throws ClassNotFoundException, SQLException {
String testsql = "select * from teacher";
Connection conn = DBUtils.createConnection();
ResultSet rs = DBUtils.executeQuery(conn, testsql);
//5:处理返回结果,此处打印查询结果
while (rs.next()) {
System.out.print(rs.getString(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.print(rs.getString(4) + "\t");
System.out.println();
}
DBUtils.closeConnection(conn);
}
}
运行结果:
1 秦老师 3000 讲师级别
2 王老师 1700 助教级别
3 江老师 1050 书童级别
4 李老师 1200 伴读级别
Process finished with exit code 0
|