使用JDBC操作MySQL数据库

时间:2023-03-08 17:44:20
使用JDBC操作MySQL数据库

一、JDBC简介

  JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。使用JDBC访问数据库的基本步骤如下:

    1、加载JDBC驱动程序

    2、建立数据库连接

    3、创建操作数据库SQL的对象

    4、执行语句并分析执行结果

    5、关闭连接

  在使用JDBC操作数据库之前,我们需要先向项目中加入JDBC驱动文件,将其放到项目中的lib文件夹下即可。

使用JDBC操作MySQL数据库

  放入JDBC驱动文件(下)后,eclipse会自动将其加载到项目中(上)。

二、使用JDBC访问MySQL数据库

  我们在MySQL数据库中建立了test库,test库中含有test表,表中的数据如下:

使用JDBC操作MySQL数据库

1、通过Statement对象执行静态SQL语句

 package test;

 import java.sql.*;                                        //导入Java提供的数据库操作包

 public class MySql {
public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"; //数据库连接地址,此处表示连接本机3306端口的MySQL数据库里的test库,使用上海时区
Connection con;
Statement statement;
ResultSet rs;
int i;
String string; try {
Class.forName("com.mysql.cj.jdbc.Driver");                //加载JDBC驱动程序
con = DriverManager.getConnection(url, "root", "root");        //建立与数据库的连接,后两个参数分别为账号和密码
statement = con.createStatement();                    //创建Statement对象 rs = statement.executeQuery("select * from test");           //执行sql查询语句,返回结果集
System.out.println("查询结果为:");
while(rs.next()) {                              //循环操作结果集
string = rs.getString("id") + "——" + rs.getString("name");
System.out.println(string);
} i = statement.executeUpdate("insert into test value(4,'wxc')");   //执行sql更新语句,返回影响行数
System.out.println("影响行数为:" + i); rs.close();                                  //关闭结果集
statement.close();                              //关闭Statement对象
con.close();                                 //关闭与数据库的连接
} catch (Exception e) {
e.printStackTrace();
}
}
}

  执行结果如下:

使用JDBC操作MySQL数据库

2、通过PreparedStatement对象执行预编译SQL语句

 public class MySql {                                    //大部分操作与执行静态SQL语句类似,相同部分此处不再赘述
public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai";
Connection con;
String sql;
PreparedStatement preparedStatement;
ResultSet rs;
int i;
String string; try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(url, "root", "root"); sql = "select * from test where id = ?";             //编写sql查询语句,问号为占位符,之后会被参数取代
preparedStatement = con.prepareStatement(sql);         //创建PreparedStatement对象
preparedStatement.setString(1, "3");               //设置参数,第一个参数表示选择第几个占位符,第二个参数表示要输入的值
rs = preparedStatement.executeQuery();
System.out.println("查询结果为:");
if(rs.next()) {
string = rs.getString("id") + "——" + rs.getString("name");
System.out.println(string);
} sql = "delete from test where id = ?";
preparedStatement = con.prepareStatement(sql);
preparedStatement.setString(1, "3");
i = preparedStatement.executeUpdate();
System.out.println("影响行数为:" + i); rs.close();
preparedStatement.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

  执行结果如下:

使用JDBC操作MySQL数据库