概要
什么是数据库
数据库是一种系统化的数据存储方式,它允许用户以结构化的方式存储、检索和管理数据。数据库通常由表格组成,这些表格中包含相关数据项,每个数据项都有预定义的关系和属性。数据库管理系统(DBMS)是用于与数据库交互的软件,它提供了创建、检索、更新和管理数据的工具。
MySql数据库
MySQL是一个流行的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)来管理数据。使用SQL语言可以方便地查询,操作,定义和控制数据库里面的数据。
项目任务
对学生表进行添加,修改,删除操作
1.添加新学生:姓名刘文,男,生日2003-04-16,编号为5;
2.将编号为2 的学生姓名改为李华;
3.删除编号为3 的学生
整体架构流程
链接数据库:在主方法中加载Mysql 8.0的驱动包,并连接本地数据库。
顺序查询:查询数据库中tb_stu表中的所有数据。
预处理语句:可使应用程序动态地改变sql语句中关于字段条件的设定。
添加,删除,删除记录:通过sql语句可以对于数据执行操作,动态对数据库中原有数据进行修改操作。
代码解析
导入数据库
在命令行中把脚本文件进行导入,并在test库查询tb_stu表。
创建一个类
1.初始化数据库,关闭数据库连接
2.查询所有同学数据
3.添加新同学数据
4.修改指定编号的同学姓名
5.删除指定编号的同学
完整代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo4 {
Connection con;// 声明数据库连接对象
public void initConnection() {// 初始化数据库连接
try {
Class.forName("com.mysql.cj.jdbc.Driver");// 加载数据库驱动类
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
// 通过访问数据库的URL,获取数据库连接对象
con = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL&allowPublicKeyRetrieval=true",
"root", "password");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeConnection() {// 关闭数据库连接
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void showAllData() {// 显示所有学生数据
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from tb_stu");
while (rs.next()) { // 如果当前语句不是最后一条,则进入循环
System.out.print("编号:" + rs.getString("id")); // 将列值输出
System.out.print(" 姓名:" + rs.getString("name"));
System.out.print(" 性别:" + rs.getString("sex"));
System.out.println(" 生日:" + rs.getString("birthday"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void add(int id, String name, String sex, String birthday) {// 添加新学生
try {
String sql = "insert into tb_stu values(?,?,?,?) ";
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, id); // 设置编号
ps.setString(2, name); // 设置名字
ps.setString(3, sex); // 设置性别
ps.setString(4, birthday); // 设置出生日期
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void delete(int id) {// 删除指定ID的学生
try {
Statement stmt = con.createStatement();
stmt.executeUpdate("delete from tb_stu where id =" + id);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void update(int id, String newName) {// 修改指定ID的学会姓名
try {
String sql = "update tb_stu set name = ? where id = ? ";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, newName); // 设置名字
ps.setInt(2, id); // 设置编号
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
JDBCDemo4 demo = new JDBCDemo4();
demo.initConnection();
demo.showAllData();
System.out.println("---添加新同学---");
demo.add(5, "刘文,"男","2003-04-16");
demo.showAllData();
System.out.println("---修改编号为2的学生姓名---");
demo.update(2, "李华");
demo.showAllData();
System.out.println("---删除编号为3的学生---");
demo.delete(3);
demo.showAllData();
demo.closeConnection();
}
}