Java使用JDBC操作MySQL数据库
程序员文章站
2022-04-08 23:34:42
一、JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。使用JDBC访问数据库的基本步骤如下: 1、加载JDBC驱动程序 2、建立数据库连接 3、创建操 ......
一、jdbc简介
jdbc(java database connectivity)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一的访问,它由一组用java语言编写的类和接口组成。使用jdbc访问数据库的基本步骤如下:
1、加载jdbc驱动程序
2、建立数据库连接
3、创建操作数据库sql的对象
4、执行语句并分析执行结果
5、关闭连接
在使用jdbc操作数据库之前,我们需要先向项目中加入jdbc驱动文件,将其放到项目中的lib文件夹下即可。
放入jdbc驱动文件(下)后,eclipse会自动将其加载到项目中(上)。
二、使用jdbc访问mysql数据库
我们在mysql数据库中建立了test库,test库中含有test表,表中的数据如下:
1、通过statement对象执行静态sql语句
1 package test; 2 3 import java.sql.*; //导入java提供的数据库操作包 4 5 public class mysql { 6 public static void main(string[] args) { 7 8 string url = "jdbc:mysql://localhost:3306/test?servertimezone=asia/shanghai"; //数据库连接地址,此处表示连接本机3306端口的mysql数据库里的test库,使用上海时区 9 connection con; 10 statement statement; 11 resultset rs; 12 int i; 13 string string; 14 15 try { 16 class.forname("com.mysql.cj.jdbc.driver"); //加载jdbc驱动程序 17 con = drivermanager.getconnection(url, "root", "root"); //建立与数据库的连接,后两个参数分别为账号和密码 18 statement = con.createstatement(); //创建statement对象 19 20 rs = statement.executequery("select * from test"); //执行sql查询语句,返回结果集 21 system.out.println("查询结果为:"); 22 while(rs.next()) { //循环操作结果集 23 string = rs.getstring("id") + "——" + rs.getstring("name"); 24 system.out.println(string); 25 } 26 27 i = statement.executeupdate("insert into test value(4,'wxc')"); //执行sql更新语句,返回影响行数 28 system.out.println("影响行数为:" + i); 29 30 rs.close(); //关闭结果集 31 statement.close(); //关闭statement对象 32 con.close(); //关闭与数据库的连接 33 } catch (exception e) { 34 e.printstacktrace(); 35 } 36 } 37 }
执行结果如下:
2、通过preparedstatement对象执行预编译sql语句
1 public class mysql { //大部分操作与执行静态sql语句类似,相同部分此处不再赘述 3 public static void main(string[] args) { 4 5 string url = "jdbc:mysql://localhost:3306/test?servertimezone=asia/shanghai"; 6 connection con; 7 string sql; 8 preparedstatement preparedstatement; 9 resultset rs; 10 int i; 11 string string; 12 13 try { 14 class.forname("com.mysql.cj.jdbc.driver"); 15 con = drivermanager.getconnection(url, "root", "root"); 16 17 sql = "select * from test where id = ?"; //编写sql查询语句,问号为占位符,之后会被参数取代 18 preparedstatement = con.preparestatement(sql); //创建preparedstatement对象 19 preparedstatement.setstring(1, "3"); //设置参数,第一个参数表示选择第几个占位符,第二个参数表示要输入的值 20 rs = preparedstatement.executequery(); 21 system.out.println("查询结果为:"); 22 while(rs.next()) { 23 string = rs.getstring("id") + "——" + rs.getstring("name"); 24 system.out.println(string); 25 } 26 27 sql = "delete from test where id = ?"; 28 preparedstatement = con.preparestatement(sql); 29 preparedstatement.setstring(1, "3"); 30 i = preparedstatement.executeupdate(); 31 system.out.println("影响行数为:" + i); 32 33 rs.close(); 34 preparedstatement.close(); 35 con.close(); 36 } catch (exception e) { 37 e.printstacktrace(); 38 } 39 } 40 }
执行结果如下:
上一篇: 一个简洁的多级别论坛
下一篇: 解决GitHub加载和下载慢问题