一、JDBC简介
JDBC全称为Java database connectivity,是SUN公司指定的Java数据库连接技术的简称。它是sun公司和数据库开发商共同开发出来的独立于DBMS的应用接口,它为Java开发人员进行数据库编程提供了统一的API。 如下图所示:
二、JDBC开发
1.搭建实验环境
在mysql中创建一个数据库,并创建user表和插入表的数据。
CREATE DATABASE jdbcdemo CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE users(
id int PRIMARY KEY,
name VARCHAR(40),
password VARCHAR(40),
email VARCHAR(60),
birthday date
);
INSERT INTO users(id,name,password,email,birthday) VALUES(1,'zhangfei','123456','zf@sina.com','1987-2-18');
INSERT INTO users(id,name,password,email,birthday) VALUES(2,'caocao','123456','cc@sina.com','1989-8-16');
INSERT INTO users(id,name,password,email,birthday) VALUES(3,'libai','123456','lb@sina.com','1995-3-22');
2.新建一个Java工程,并导入数据库驱动
3.编写代码读取user表中的数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcDemo01 {
public static void main(String[] args) {
//要连接的数据库URL
String url = "jdbc:mysql://localhost:3306/JdbcDemo";
//连接的数据库时使用的用户名
String userName = "root";
//连接的数据库时使用的密码
String password = "root";
//数据库驱动
String driver = "com.mysql.jdbc.Driver";
try {
//1.加载驱动
Class.forName(driver);
//2.获取与数据库的链接
Connection conn = DriverManager.getConnection(url,userName,password);
//3.获取用于向数据库发送sql语句的statement
Statement st = conn.createStatement();
String sql = "select id,name,password,email,birthday from users";
//4.向数据库发sql,并获取代表结果集的resultset
ResultSet rs = st.executeQuery(sql);
//5.取出结果集的数据
while(rs.next()){
System.out.println("id="+rs.getObject("id"));
System.out.println("name="+rs.getObject("name"));
System.out.println("password="+rs.getObject("password"));
System.out.println("email="+rs.getObject("email"));
System.out.println("date="+rs.getObject("birthday"));
}
//6.关闭链接,释放资源
rs.close();
st.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
id=1
name=zhangfei
password=123456
email=zf@sina.com
date=1987-02-18
id=2
name=caocao
password=123456
email=cc@sina.com
date=1989-08-16
id=3
name=libai
password=123456
email=lb@sina.com
date=1995-03-22
三、数据库类讲解
1.DriverManager类
用于加载驱动,并创建与数据库的连接,常用API方法:
- DriverManager.getConnection(url,username,password)
2.URL讲解
URL写法:
常用数据库URL:
- Oralce:jdbc:oracle:thin:@localhost:1521:sid
- SqlServer:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sid
- MySql:jdbc:mysql://localhost:3306/sid
3.Connection类讲解
- createStatement():创建向数据库发送sql的statement对象
- prepareStatement(sql):创建向数据库发送编译sql的PrpareStatement对象
- prepareCall(sql):创建执行存储过程的callableStatemnt对象
- setAutoCommit(boolean autoCommit):设置事务是否自动提交
- commit():在连接上提交事务
- rollback():在链接上回滚事务
4.statement类讲解
用于向数据库发送sql语句,常用方法:
- executeQuery(sql):用于向数据库发送查询语句
- executeUpdate(sql):用于向数据库发送inset、update、delete语句
- execute(sql):用于向数据库发送任意语句
- addBatch(sql):把多条sql语句放到一个批处理中
- executeBatch():向数据库发送一批sql语句执行
5.ResultSet类讲解
用于代表sql语句的执行结果。常用方法:
- getObject(int index) 获取任意数据
- getObject (String columName)获取任意数据
- getString(inti ndex)获取指定类型数据
- getString(String columnName)获取指定类型数据
- next() 移动到下一行
- previous()移动到前一行
- absolute(int row)移动到指定行
- beforeFirst()移动到最前面
- afterLast()移动到最后一行