需要加载数据库驱动可以看:
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 这一条。