Java 操作数据库
第一章:Java 代码四个类实现
① 项目结构展示
需要加载数据库驱动可以看:
Java 技术篇-IntelliJ IDEA 导入数据库驱动jar包实例演示
项目结构如下:
共分为 4 个类,分别是连接类、主类、查询类和更新类。
其中更新类可实现数据库的插入、更新和删除的操作。
② 数据库连接类
通过数据库连接类返回 Connection 连接对象。
package com.dbmanage.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConn { static String db_select = "polardb"; // oracle数据库 static String oracleDriverClass="oracle.jdbc.driver.OracleDriver"; // oracle的驱动 // mysql数据库 static String mysqlDriverClass = "com.mysql.cj.jdbc.Driver"; // mysql的驱动 // 阿里云polardb数据库 static String polardbDriverClass = "com.aliyun.polardb.Driver"; // polardb的驱动 static String url = "jdbc:polardb://10.10.xx.xx:5432/alitest"; // 数据库url地址 static String user = "alitest"; // 数据库用户名 static String password = "1"; // 数据库密码 public static Connection getConn() { /* 作用:连接数据库连接方法 返回:连接的实体 */ Connection conn = null; try { // 加载驱动 if(db_select == "mysql") { Class.forName(mysqlDriverClass); }else if(db_select == "oracle") { Class.forName(oracleDriverClass); }else if(db_select == "polardb") { Class.forName(polardbDriverClass); } // 连接数据库 conn = DriverManager.getConnection(url, user, password); System.out.println("数据库连接状态:\n连接成功!"); // 先抓取sql异常 } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return conn; // 返回一个连接 } }
③ 数据库查询类
通过数据库查询类执行查询操作,返回查询的结果集 ResultSet 对象。
package com.dbmanage.db; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBQuery { public static ResultSet getRs(Connection conn, String sql) { /* 作用:查询数据库操作 返回:查询的结果集 */ Statement st = null; ResultSet rs = null; try { // statement对象用于执行sql语句 st = conn.createStatement(); // 执行sql语句并且换回一个查询的结果集 rs = st.executeQuery(sql); }catch(SQLException e){ e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } return rs; } }
④ 数据库更新类
该类执行数据库的插入、更新和删除动作,包括 insert、update 和 delete。
package com.dbmanage.db; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class DBUpdate { public static int getRs(Connection conn, String sql) { /* 作用:插入、更新、删除数据库 返回:影响的行数:0代表无影响 */ Statement st = null; int rs = 0; try { // statement对象用于执行sql语句 st = conn.createStatement(); // 执行sql语句,成功返回修改行数,不成功返回0 rs = st.executeUpdate(sql); }catch(SQLException e){ e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } return rs; } }
⑤ 数据库主类
数据库主类进行查询和更新操作演示。
package com.dbmanage.db; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBMain { public static void main(String[] args) throws SQLException { Connection conn = null; Statement st = null; ResultSet query_rs = null; int update_rs = 0; String sql = ""; // 获取数据库连接 conn = DBConn.getConn(); // sql查询语句 sql = "select * from bd_supplier order by code asc"; // 进行查询操作 query_rs = DBQuery.getRs(conn, sql); // 显示查询的结果 System.out.println("\n查询操作结果如下:"); while (query_rs.next()) { int row_id = query_rs.getRow(); String code = query_rs.getString("code"); String name = query_rs.getString("name"); System.out.println(row_id + " " + code); } // sql更新语句 sql = "update bd_supplier set code = '0406-01' where code = '0406'"; // 进行更新操作 update_rs = DBUpdate.getRs(conn, sql); // 显示查询的结果 System.out.println("\n更新操作结果如下:"); if(update_rs > 0){ System.out.println("执行成功!影响行数:" + update_rs + " 行!"); }else if(update_rs == 0){ System.out.println("无行数受到影响!"); } } }
第二章:查询和更新操作实例演示
① 查询操作演示
控制台显示出行和编码。
// sql查询语句 sql = "select * from bd_supplier order by code asc"; // 进行查询操作 query_rs = DBQuery.getRs(conn, sql); // 显示查询的结果 System.out.println("\n查询操作结果如下:"); while (query_rs.next()) { int row_id = query_rs.getRow(); String code = query_rs.getString("code"); String name = query_rs.getString("name"); System.out.println(row_id + " " + code); }
② 更新操作演示
将 0406 编码改为 0406-01。
// sql更新语句 sql = "update bd_supplier set code = '0406-01' where code = '0406'"; // 进行更新操作 update_rs = DBUpdate.getRs(conn, sql); // 显示查询的结果 System.out.println("\n更新操作结果如下:"); if(update_rs > 0){ System.out.println("执行成功!影响行数:" + update_rs + " 行!"); }else if(update_rs == 0){ System.out.println("无行数受到影响!"); }
执行后可以看到有一行受到影响了,就是 0406 这一条。
喜欢的点个赞❤吧!