目录
第一步:导入jar包
commons-dbutils-1.6.jar,jar包大家就到网上搜吧
第二步:配置数据库参数
Oracle配置参数:xml中配置
<user mark="{VE}" desc="数据库用户">root</user>
<password mark="{VE}" desc="数据库密码">lyt\!QAZ123456</password>
<url mark="{VE}" desc="数据库url">jdbc:oracle:thin:@//127.0.0.1:1521/OADB</url>
<driverClass mark="{VE}" desc="驱动">oracle.jdbc.driver.OracleDriver</driverClass>
重点一:Oracle数据库的JDBC连接分为三种,服务名(SERVICE_NAME)、SID和TNSName三种,所以在写数据库的url一定要先确认是那种JDBC连接,下面给出三种JDBC连接的书写方式:
SERVICE_NAME方式:
jdbc:oracle:thin:@//<host>:<port>/<SERVICE_NAME>
SID方式:
jdbc:oracle:thin:@<host>:<port>:<SID> 或:jdbc:oracle:thin:@<host>:<port>/<SID>
TNSName连接方式:
jdbc:oracle:thin:@<TNSName>
重点二:oracle的密码中包含!、@、#等时需要转移
例如我的密码是lyt!QAZ123456 这个时,在配置文件中要加入\进行转移,即书写为lyt\!QAZ123456
Mysql配置参数:xml方式配置
<user mark="{VE}" desc="数据库用户">root</user>
<password mark="{VE}" desc="数据库密码">lyt123456</password>
<url mark="{VE}" desc="数据库url">jdbc:mysql://127.0.0.1:3306/test3?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8</url>
<driverClass mark="{VE}" desc="驱动">com.mysql.jdbc.Driver</driverClass>
重点:数据库url中如果出现&符号时,需要转义为&
第三步:写一个工具类JDBCUtils
可以直接拿来用的工具类~~
import com.seeyon.ctp.common.log.CtpLogFactory;
import com.seeyon.ctp.rest.resources.MySSOResources;
import org.apache.commons.logging.Log;
import java.sql.*;
/**
* @author : lvyitingx
* @date : 2023-04-03 16:00
**/
public class JDBCUtils {
private static final Log logger = CtpLogFactory.getLog(JDBCUtils.class);
private static final String user = System.getProperty("xnsy.membersync.user");
private static final String password = System.getProperty("xnsy.membersync.password");
private static final String url = System.getProperty("xnsy.membersync.url");
private static final String driverClass = System.getProperty("xnsy.membersync.driverClass");
public static Connection getConnection(){
Connection con = null;
try {
//获取参数
logger.info("数据库参数:"+user +password +url +driverClass);
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
con = DriverManager.getConnection(url,user,password);
} catch (Exception e) {
logger.info("数据库连接错误"+e);
throw new RuntimeException(e);
}
return con;
}
/**
* 关闭连接、Statement和ResultSet
* @param con
* @param ps
*/
public static void closeResource(Connection con, Statement ps, ResultSet rs) {
//资源关闭
try {
if(ps != null)
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
第四步:连接数据库
@Path("updateMember")
@GET
public void updateMember() {
Connection con = null;
PreparedStatement ps = null;
ResultSet resultSet = null;
List<String> midMembers = null;
try {
midMembers = new ArrayList<>();
con = JDBCUtils.getConnection();
String sql = "select code from mid_org_person";
ps = con.prepareStatement(sql);
resultSet = ps.executeQuery();
logger.info("获取结果成功"+resultSet);
//获取中间表人员编号
while (resultSet.next()) {
midMembers.add(resultSet.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭资源
JDBCUtils.closeResource(con, ps, resultSet);
}
}
到这里就可以连接成功啦~~