我能想到的方法有2个
(1)配置多数据源
(2)用java最基础的jdbc
虽然之前玩过多数据源,但是没理解透,配置起来有些难度,我最终选择了jdbc,并且成功实现。
我的业务逻辑简化如下:
1.更新数据库1表的记录(这里直接用的项目的mapper操作即可,无需改变)
2.插入一条数据库2表(这里去用jdbc新建数据库2的连接,然后进行插入操作)
附上jdbcUtil
package com.xx.yiwu.utils;
import org.springframework.util.ResourceUtils;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JDBCUtil {
public static String DRIVERNAME = null;
public static String URL = null;
public static String USER = null;
public static String PASSWORD = null;
public static Connection conn = null;
static {
try {
Properties props = new Properties();
InputStream in = new ClassPathResource("aliyun.properties").getInputStream();
props.load(in);
DRIVERNAME = props.getProperty("drivername");
URL = props.getProperty("url");
USER = props.getProperty("user");
PASSWORD = props.getProperty("password");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws Exception {
if (conn != null && !conn.isClosed()) {
return conn;
}
Class.forName(DRIVERNAME);
conn = DriverManager.getConnection(URL, USER, PASSWORD);
return conn;
}
public static void closeResource(Connection conn, PreparedStatement st) throws SQLException {
st.close();
conn.close();
}
public static void closeResource(Connection conn, ResultSet rs, PreparedStatement st) throws SQLException {
st.close();
rs.close();
conn.close();
}
}
package com.xx.yiwu.utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcTest {
public static void main(String[] args) {
// selectFunction();
insertFunction();
}
public static void insertFunction() throws Exception{
try {
//1.获取连接
Connection conn = JDBCUtil.getConnection();
// 3.sql语句
String sql = "insert into yiwu_trace_url(DEVICE_ID,BILL_ID,URL) values(?,?,?)";
// 3.获取SQL执行者
PreparedStatement st = conn.prepareStatement(sql);
// 4.设置参数
st.setString(1,"2");
st.setString(2,"22");
st.setString(3,"222");
// 5.执行sql语句
int rs = st.executeUpdate();
// 6.处理数据
// 7.释放资源
JDBCUtil.closeResource(conn, st);
}
}