基于Java的数据库操作

概要

什么是数据库

        数据库是一种系统化的数据存储方式,它允许用户以结构化的方式存储、检索和管理数据。数据库通常由表格组成,这些表格中包含相关数据项,每个数据项都有预定义的关系和属性。数据库管理系统(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();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你我哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值