1 JDBC
1.1 介绍
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是Java访问数据库的标准规范。
1.2 JDBC开发
步骤:
- 导入jar包,注册驱动
- 获得连接
- 获得语句执行平台
- 执行SQL语句
- 处理结果
- 释放资源
示例:
1)在MySQL中创建数据库,数据表,插入初识数据
#创建数据库
create database my_db;
#使用数据库
use my_db;
###创建分类表
create table sort(
sid int PRIMARY KEY auto_increment,
sname varchar(100)
);
#初始化数据
insert into sort(sname) values('家电');
insert into sort(sname) values('服饰');
insert into sort(sname) values('化妆品');
2)插入记录
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2 获取连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_db", "root", "rootroot");
// 3 获得预处理对象
String sql = "insert into sort(sname) values(?)";
PreparedStatement stat = conn.prepareStatement(sql);
// 4 SQL语句占位符设置实际参数
stat.setString(1, "奢侈品");
// 5 执行SQL语句
int line = stat.executeUpdate();
System.out.println("新添加记录数:" + line);
// 6 释放资源
stat.close();
conn.close();
}
3)更新记录
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2获取连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_db", "root", "rootroot");
// 3获得预处理对象
String sql = "update sort set sname=? where sid=?";
PreparedStatement stat = conn.prepareStatement(sql);
// 4 SQL语句占位符设置实际参数
stat.setString(1, "数码产品");
stat.setInt(2, 1);
// 5执行SQL语句
int line = stat.executeUpdate();
System.out.println("更新记录数:" + line);
// 6释放资源
stat.close();
conn.close();
}
4)删除记录
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2获取连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_db", "root", "rootroot");
// 3获得预处理对象
String sql = "delete from sort where sid=?";
PreparedStatement stat = conn.prepareStatement(sql);
// 4 SQL语句占位符设置实际参数
stat.setInt(1, 1);
// 5执行SQL语句
int line = stat.executeUpdate();
System.out.println("删除记录数:" + line);
// 6释放资源
stat.close();
conn.close();
}
5)查询记录
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2 获取连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/my_db", "root", "rootroot");
// 3 获得预处理对象
String sql = "select * from sort";
PreparedStatement stat = conn.prepareStatement(sql);
// 4 SQL语句占位符设置实际参数
// 5 执行SQL语句
ResultSet rs = stat.executeQuery();
// 6 处理结果集(遍历结果集合)
while (rs.next()) {
// 获取当前行的分类ID
String sid = rs.getString("sid");// 方法参数为数据库表中的列名
// 获取当前行的分类名称
String sname = rs.getString("sname");
// 显示数据
System.out.println(sid + "-----" + sname);
}
// 7 释放资源
rs.close();
stat.close();
conn.close();
}