一、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)
);
insertinto teacher(id,name,salary,remark)
values
(1,'秦老师',3000,'讲师级别'),
(2,'王老师',1700,'助教级别'),
(3,'江老师',1050,'书童级别'),
(4,'李老师',1200,'伴读级别');
import java.sql.*;
/**
* JDBC第一个测试程序
* User: xiaohui
* Date: 2008-11-221:18:07
*/
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
七、封装一个简单的JDBC工具类
import java.sql.*;
/**
* 一个简单数据库工具类
* User: xiaohui
* Date: 2008-11-221:16:21
*/
public class DBUtils {
public static String dburl =
"jdbc:mysql://localhost:3306/testdb";
public static String user =
"root";
public static String password =
"xiaohui";
/**
* 创建一个数据库连接
*
* @return 一个数据库连接
*/
public static Connection createConnection() {
Connection conn = null;
//1:注册驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.err.println("#ERROR# :加载数据库驱动异常,请检查!");
e.printStackTrace();
}
//2:创建数据库连接
try {
conn = DriverManager.getConnection(dburl, user, password);
} catch (SQLException e) {
System.err.println("#ERROR# :创建数据库连接发生异常,请检查!");
e.printStackTrace();
}
return conn;
}
/**
* 在一个数据库连接上执行一个静态SQL语句
*
* @param conn数据库连接
* @param staticSql 静态SQL语句字符串
* @return 返回查询结果集ResultSet对象
*/
public static ResultSet executeQuery(Connection conn, String staticSql) {
ResultSet rs = null;
try {
//3:创建执行SQL的对象
Statement stmt = conn.createStatement();
//4:执行SQL,并获取返回结果
rs = stmt.executeQuery(staticSql);
} catch (SQLException e) {
System.err.println("#ERROR# :执行SQL语句,请检查!");
e.printStackTrace();//To change body of catch statement use File | Settings | File Templates.
}
return rs;
}
public static
void closeConnection(Connection conn) {
try {
if (!conn.isClosed()) {
//6:关闭数据库连接
conn.close();
}
} catch (SQLException e) {
System.err.println("#ERROR# :关闭数据库连接发生异常,请检查!");
e.printStackTrace();
}
}
}
使用这个工具类
import java.sql.*;
/**
* JDBC工具类测试
* User: xiaohui
* Date: 2008-11-222:08:58
*/
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
分享到:
相关推荐
JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记
自己的JDBC 学习笔记JDBC 学习笔记
jdbc学习笔记(PDF格式) jdbc学习笔记(PDF格式)
JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记! JDBC学习笔记!
jdbc非常完美的学习笔记 东西很全面。适合初学者。
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子jdbc 学习 笔记 代码例子
jdbc学习笔记
达内jdbc学习笔记,内有三大数据(oracle,MySql,SQLServer)的不同连接方式
自己整理的传智播客jdbc学习笔记,属于原创作品
jSP JDBC 学习笔记(基础)
jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子
JDBC 学习笔记.txt JDBC 学习笔记.txt
JDBC学习笔记(笔记+包含详细注释的代码)
JDBC学习笔记(精华版)-1 很详细
JDBC学习笔记.txtJDBC学习笔记.txtJDBC学习笔记.txt