Java数据库操作

使用Java连接并操作MySQL数据库

前期准备工作

mysql-connector-java下载地址
进去后选择相对应的版本。
在这里插入图片描述

打开eclipse,选中Java项目,右键选择构建路径,再选择添加外部归档,选择刚下载的jar文件。

连接MySQL数据库

package 数据库;

import java.sql.*;

public class Conn {

	Connection con;

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			System.out.println("数据库驱动加载成功");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {

			con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/friends" + "?serverTimezone=GMT%2B8", "root",
					"root");
			System.out.println("数据库连接成功");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;
	}

	public static void main(String[] args) {
		Conn c = new Conn();
		c.getConnection();

	}

}

在这里插入图片描述

进行查询操作

顺序查询

package 数据库;

import java.sql.*;

public class Gradation { // 创建类
	static Connection con; // 声明Connection对象
	static Statement sql; // 声明Statement对象
	static ResultSet res; // 声明ResultSet对象

	public Connection getConnection() { // 连接数据库方法

		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql:"
					+ "//127.0.0.1:3306/test?serverTimezone=UTC", "root", "root");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con; // 返回Connection对象
	}

	public static void main(String[] args) { // 主方法
		Gradation c = new Gradation(); // 创建本类对象
		con = c.getConnection(); // 与数据库建立连接
		try {
			sql = con.createStatement(); // 实例化Statement对象
			// 执行SQL语句,返回结果集
			res = sql.executeQuery("select * from tb_stu");
			while (res.next()) { // 如果当前语句不是最后一条则进入循环
				String id = res.getString("id"); // 获取列名是"id"的字段值
				// 获取列名是"name"的字段值
				String name = res.getString("name");
				// 获取列名是"sex"的字段值
				String sex = res.getString("sex");
				// 获取列名是"birthday"的字段值
				String birthday = res.getString("birthday");
				System.out.print("编号:" + id); // 将列值输出
				System.out.print(" 姓名:" + name);
				System.out.print(" 性别:" + sex);
				System.out.println(" 生日:" + birthday);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

编号:1 姓名:小明 性别:男 生日:2015-11-02
编号:2 姓名:小红 性别:女 生日:2015-09-01
编号:3 姓名:张三 性别:男 生日:2010-02-12
编号:4 姓名:李四 性别:女 生日:2009-09-10

模糊查询

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Train { // 创建类
	static Connection con; // 声明Connection对象
	static Statement sql; // 声明Statement对象
	static ResultSet res; // 声明ResultSet对象

	public Connection getConnection() { // 连接数据库方法

		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql:"
					+ "//127.0.0.1:3306/test?serverTimezone=UTC", "root", "root");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con; // 返回Connection对象
	}

	public static void main(String[] args) { // 主方法
		Train c = new Train(); // 创建本类对象
		con = c.getConnection(); // 与数据库建立连接
		try {
			sql = con.createStatement(); // 实例化Statement对象
			// 执行SQL语句,返回结果集
			res = sql.executeQuery("select * from tb_stu where name like '张%'");
			while (res.next()) { // 如果当前语句不是最后一条则进入循环
				String id = res.getString("id"); // 获取列名是"id"的字段值
				// 获取列名是"name"的字段值
				String name = res.getString("name");
				// 获取列名是"sex"的字段值
				String sex = res.getString("sex");
				// 获取列名是"birthday"的字段值
				String birthday = res.getString("birthday");
				System.out.print("编号:" + id); // 将列值输出
				System.out.print(" 姓名:" + name);
				System.out.print(" 性别:" + sex);
				System.out.println(" 生日:" + birthday);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

编号:3 姓名:张三 性别:男 生日:2010-02-12

添加、修改、删除数据

package 数据库;
import java.sql.*;
public class Renewal { // 创建类
	static Connection con; // 声明Connection对象
	static PreparedStatement sql; // 声明PreparedStatement对象
	static ResultSet res; // 声明ResultSet对象

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql:"
					+ "//127.0.0.1:3306/test?serverTimezone=UTC", "root", "root");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}

	public static void main(String[] args) {
		Renewal c = new Renewal(); // 创建本类对象
		con = c.getConnection(); // 调用连接数据库方法
		try {
			sql = con.prepareStatement("select * from tb_stu"); // 查询数据库
			res = sql.executeQuery(); // 执行SQL语句
			System.out.println("执行增加、修改、删除前数据:");
			while (res.next()) {
				String id = res.getString(1);
				String name = res.getString("name");
				String sex = res.getString("sex");
				String birthday = res.getString("birthday"); // 遍历查询结果集
				System.out.print("编号:" + id);
				System.out.print(" 姓名:" + name);
				System.out.print(" 性别:" + sex);
				System.out.println(" 生日:" + birthday);
			}
			sql = con.prepareStatement("insert into tb_stu(name,sex,birthday) values(?,?,?)");
			sql.setString(1, "张一"); // 预处理添加数据
			sql.setString(2, "女");
			sql.setString(3, "2012-12-1");
			sql.executeUpdate();
			sql = con.prepareStatement("update tb_stu set birthday "
					+ "= ? where id = ? ");
			sql.setString(1, "2012-12-02"); // 更新数据
			sql.setInt(2, 1); // 更新数据
			sql.executeUpdate();
			Statement stmt = con.createStatement();
			stmt.executeUpdate("delete from tb_stu where id = 1");
			// 查询修改数据后的tb_stu表中数据
			sql = con.prepareStatement("select * from tb_stu");
			res = sql.executeQuery(); // 执行SQL语句
			System.out.println("执行增加、修改、删除后的数据:");
			while (res.next()) {
				String id = res.getString(1);
				String name = res.getString("name");
				String sex = res.getString("sex");
				String birthday = res.getString("birthday");
				System.out.print("编号:" + id);
				System.out.print(" 姓名:" + name);
				System.out.print(" 性别:" + sex);
				System.out.println(" 生日:" + birthday);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

执行增加、修改、删除前数据:
编号:1 姓名:小明 性别:男 生日:2015-11-02
编号:2 姓名:小红 性别:女 生日:2015-09-01
编号:3 姓名:张三 性别:男 生日:2010-02-12
编号:4 姓名:李四 性别:女 生日:2009-09-10
执行增加、修改、删除后的数据:
编号:2 姓名:小红 性别:女 生日:2015-09-01
编号:3 姓名:张三 性别:男 生日:2010-02-12
编号:4 姓名:李四 性别:女 生日:2009-09-10
编号:5 姓名:张一 性别:女 生日:2012-12-01

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据攻城小狮子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值