JAVA——JDBC操作MySQL数据库进行增删改查

  • 当前 jdk版本:jdk1.8.0_74
  • 当前 jdbc版本:mysql-connector-java-8.0.19
  • 注意:jibc驱动最好与jdk是同一个大版本

一、概念

1、用途

Java 数据库连接,是jdk提供的一套类和接口,供我们可以很方便的去操作各种数据库。

2、环境搭建

1.在Java项目根目录创建lib文件夹
在这里插入图片描述

2.导入数据库驱动jar包
在项目中创建lib文件夹并将数据库驱动复制到该文件夹中,添加驱动到项目
在这里插入图片描述

3.安装驱动
在驱动jar文件上鼠标右键Build Path ->add to Build Path

3、步骤

1、提供数据库的连接信息
2、注册驱动
3、连接到数据库,获取到连接对象
4、编写sql
5、事务开启(可选,当sql需要事务控制时写)
6、预编译sql
7、执行sql
8.1、提交事务(可选,当事务开启时写)
8.2、回滚事务(可选,当事务开启时写)
9、关闭连接,释放资源

二、举例

前置步骤:新建数据库【yebuxiu_jdbc】,在数据库建一张表【userinfo】,如图所示
在这里插入图片描述
建表语句:

create table userinfo(
	id int primary key auto_increment,
	username varchar(10),
	password varchar(10)
);

然后开始按以上1-9步骤一步步编写Java代码,增删改查的四个方法,代码及注释如下:

1.增

	/**
	 * 增
	 */
	public 	void add() {
//		1、获取数据库连接信息
		String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
				+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
		String user = "root";
		String password = "123456";
		String driverClass = "com.mysql.cj.jdbc.Driver";
		
		Connection conn = null;
		PreparedStatement pst = null;

		try {
//			2、注册驱动
			Class.forName(driverClass);
//			3、连接数据库,得到连接对象
			conn = DriverManager.getConnection(url,user,password);
//			4、写sql
			String sql = "insert into userinfo(username,password) values('张三','123')";
//			5、sql预编码
			pst = conn.prepareStatement(sql);
//			6、执行sql
			int result = pst.executeUpdate();
			System.out.println("新增了"+result+"行");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
//			7、关闭连接
			try {
				pst.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

2.删

	/**
	 * 删
	 */
	public static void delete() {
//		1、获取数据库连接信息
		String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
				+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
		String username = "root";
		String password = "123456";
		String classDriver = "com.mysql.cj.jdbc.Driver";
		Connection conn = null;
		PreparedStatement pst = null;
		try {
//			2、注册驱动
			Class.forName(classDriver);
//			3、连接到数据库
			conn = DriverManager.getConnection(url,username,password);
//			4、写sql
			String sql = "delete from userinfo where id = 4";
//			5、预编译sql
			pst = conn.prepareStatement(sql);
//			6、执行sql
			int result = pst.executeUpdate();
			System.out.println("删除了"+result+"行");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
//			7、关闭连接
			try {
				pst.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

3.改

	
	/**
	 * 改
	 */
	public void update() {
//		1、获取数据库连接信息
		String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
				+ "userUnicode=true&characterEncoding=UTF-8&severTimezone=Asia/Shanghai";
		String username = "root";
		String password = "123456";
		String driverClass = "com.mysql.cj.jdbc.Driver";
		

		Connection conn = null;
		PreparedStatement pst = null;
		try {
//			2、注册驱动
			Class.forName(driverClass);
//			3、连接到数据库
			conn = DriverManager.getConnection(url,username,password);
//			4、编写sql
			String sql = "update userinfo set name = '李四四'";
//			5、预编译sql
			pst = conn.prepareStatement(sql);
//			6、执行sql、
			int result = pst.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
//				7、关闭连接
				pst.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

4.查

	/**
	 * 查
	 */
	public void select() {
//		1、获取数据库连接信息
		String url = "jdbc:mysql://127.0.0.1:3306/yebuxiu_jdbc?"
				+ "userUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
		String user = "root";
		String password = "123456";
		String driverClass = "com.mysql.cj.jdbc.Driver";
		Connection conn = null;
		PreparedStatement pst = null;
		ResultSet result = null;

		try {
//			2、注册驱动
			Class.forName(driverClass);
//			3、连接到数据库
			conn = DriverManager.getConnection(url,user,password);
//			4、编写sql
			String sql = "select * from userinfo";
//			5、预编译sql
			pst = conn.prepareStatement(sql);
//			6、执行sql
			result = pst.executeQuery();
//			7、遍历获取执行结果集
			while(result.next()) {
				int id = result.getInt("id");
				String user1 = result.getString("username");
				String pwd = result.getString("password");
				System.out.println(id+" "+user1+" "+pwd);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
//			8、关闭连接
			try {
				result.close();
				pst.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

版权声明:本文为weixin_56039103原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。