JDBC是Java数据库连接,是一套用于执行SQL语句的Java API
一、JDBC常用API
1.Driver接口
Driver接口是所有JDBC程序必须实现的接口,在编写JDBC程序时,必须把所有使用的数据库驱动程序或者类库加载到项目的classpath中,
2.DriverManager类
DriverManager类用于加载JDBC驱动并创建数据库的连接。在DriverManager类中,定义两个比较重要的方法
方法名 | 功能描述 |
registerDriver(Driver driver) | 用于向DriverManager中注册给定的JDBC驱动程序 |
getConnection(String url,String name,String password) | 用于建立数据库连接,并且返回表示连接的Connection对象 |
3.Connection接口
Connection接口在Java中表示java程序与数据库的连接,只有获得此链接对象后才能访问数据库,并操作数据表
4.Statement接口
Statement接口用于执行静态的SQL语句,并返回一个对象,该接口对象由Connection实例的createStatement()方法获得,利用该对象将SQL语句送去数据库进行执行,然后返回数据库的处理结果
5.PreparedStatement接口
preparedStatement接口是Statement的子接口,用于执行预编译的sql语句,该接口拓展了带有参数的SQL语句的执行操作,应用该接口中的SQL语句可以使用占位符“?”来代替其参数,然后通过setXXX()方法为SQL语句的参数赋值,
6.ResultSet接口
ResultSet接口用于保存JDBC执行查询时返回的的结果集,该结果将会封装到一个逻辑表格中
二、实现第一个JDBC程序
1.搭建数据库环境
create database jdbc;
use jdbc;
create table users(
id int primary key auto_increment,
name varchar(40),
password varchar(40),
email varchar(60),
birthday date) character set utf8 collate utf8_general_ci;
insert into users(name,password,email,birthday)
values('za','123456','za@sina','1997-12-04'),
('lisi','123456','lisi@sina','1995-08-09'),
('wangwu','123456','wangwu@sina','1994-05-19');
2、创建一个名为2chapter09的web项目,将下载好的mysql驱动文件复制到项目中
3.编写JDBC程序
package cn.itheima.jdbc.example;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class example01 {
public static void main(String[] args) throws SQLException {
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
//1.注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//2.通过DriverManager获取数据库连接
String url = "jdbc:mysql://localhost:3306/jdbc";
String username = "root";
String password = "itcast";
conn = DriverManager.getConnection(url, username, password);
//3.通过Connection对象获取Statement对象
stmt = conn.createStatement();
//4.使用Statement执行SQL语句
String sql = "select * from users";
rs = stmt.executeQuery(sql);
//5.操作ResultSet结果集
System.out.println("id|name|password|email|brithday");
while(rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("username");
String paw = rs.getString("password");
String email = rs.getString("email");
Date birthday = rs.getDate("birthday");
System.out.println(id+"|"+name+"|"+paw+"|"+email+"|"+birthday);
}
}catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
//回收数据库资源
if(rs!=null) {
try {
rs.close();
}catch (Exception e) {
e.printStackTrace();
}
rs=null;
}
if(stmt!=null) {
try {
stmt.close();
}catch (Exception e) {
e.printStackTrace();
}
stmt=null;
}
if(conn!=null) {
try {
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
conn=null;
}
}
}
}
4.测试编译
测试结果如下:
再次查询数据库
可以看到,我们确实将数据库中的信息通过jdbc输出了