JDBC之增删改查

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gyx_2110/article/details/75578156

一、什么是JDBC

JDBC(Java DataBase Connectivity)就是Java数据库连接,用Java语言来操作数据库。简单地说,JDBC就是用于执行SQL语句的一系列Java API。


二、为什么要使用JDBC

早期SUN公司想编写一套可以连接天下所有数据库的API,但是因为各个厂商的数据库服务器差异太大了,这任务几乎无法实现。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范,并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的接口实现被称之为驱动。

通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。




三、准备工作

我们以MySql为例来使用JDBC操作数据库,现有如下的数据表在MySql中:


其建表语句为:

CREATE DATABASE jdbcDemo;
use jdbcDemo;
CREATE TABLE `per`(
	`id` INT PRIMARY KEY AUTO_INCREMENT,
	`name` VARCHAR(50),
	`age` INT,
	`city` VARCHAR(100)
);
INSERT INTO per VALUES(NULL,'Estelle',24,"深圳");
INSERT INTO per VALUES(NULL,'Jasmine',27,"上海");
INSERT INTO per VALUES(NULL,'Iris',23,"长沙");
INSERT INTO per VALUES(NULL,'Emily',25,"广州");
INSERT INTO per VALUES(NULL,'Bunny',25,"深圳");

准备好mysql数据库的驱动jar包,并导入到项目中


四、准备工作完毕,现在让我们一起学习下JDBC的基本操作吧

  • 加载驱动类并获取连接:
package com.gyx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCDemo {
	public static void main(String[] args) {
		Connection connection = null;
		try {
			Class.forName("com.mysql.jdbc.Driver"); // 加载驱动类
			// 连接MySql的URL
			String url = "jdbc:mysql://localhost:3306/jdbcDemo";
			String username = "root"; // MySql的用户名
			String password = "123"; // MySql的用户密码
			// 获取连接
			connection = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

上代码若若能够正常运行不抛异常,则证明之前的准备工作是没有失误的。

  • 发送增删改语句
简单描述下我们的操作:
1.添加一条记录:name:Tom  age:29  city:北京
2.修改名为Iris的记录:age->31  city->成都
3.删除名为Bunny的记录

package com.gyx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
	private static Connection connection;
	public static void main(String[] args) {
		connection = null;
		try {
			Class.forName("com.mysql.jdbc.Driver"); // 加载驱动类
			// 连接MySql的URL
			String url = "jdbc:mysql://localhost:3306/jdbcDemo";
			String username = "root"; // MySql的用户名
			String password = "123"; // MySql的用户密码
			// 获取连接
			connection = DriverManager.getConnection(url, username, password);
			CUDMethod();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void CUDMethod() {
		try {
			// 创建用于发送SQL语句的Statement对象
			Statement statement = connection.createStatement();
			// Sql语句
			String insert = "INSERT INTO per VALUES(NULL,'Tom',29,'北京')";
			String update = "UPDATE per SET age=31,city='成都' where name='Iris'";
			String delete = "DELETE FROM per WHERE name='Bunny'";
			// 执行sql语句
			statement.executeUpdate(insert);
			statement.executeUpdate(update);
			statement.executeUpdate(delete);
			System.out.println("增删改命令执行成功!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

在控制台查看数据库的内容,可以看到表中数据已经发生了改变。


  • 查询表中的数据
package com.gyx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
	private static Connection connection;
	public static void main(String[] args) {
		connection = null;
		try {
			Class.forName("com.mysql.jdbc.Driver"); 
			String url = "jdbc:mysql://localhost:3306/jdbcDemo";
			String username = "root"; 
			String password = "123"; 
			connection = DriverManager.getConnection(url, username, password);
			// 得到返回的结果集对象
			ResultSet resultSet = queryTable();
			// 遍历结果集对象
			while (resultSet != null && resultSet.next()) {
				String item = resultSet.getInt("id") + " "
						+ resultSet.getString("name") + " "
						+ resultSet.getInt("age") + resultSet.getString("city");
				System.out.println(item);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	// 用于查询的方法 返回结果集对象
	public static ResultSet queryTable() {
		try {
			Statement statement = connection.createStatement();
			String query = "SELECT * FROM per";
			ResultSet resultSet = statement.executeQuery(query);
			return resultSet;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
}

查询出表中的数据如下表:


到这里,使用JDBC进行基本的增删改查就学习完毕了。

猜你喜欢

转载自blog.csdn.net/gyx_2110/article/details/75578156