JDBC之增删改查

来源:互联网 发布:syslog 数据 编辑:程序博客网 时间:2024/06/06 16:54

一、什么是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的URLString 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的URLString 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进行基本的增删改查就学习完毕了。