spring项目一个逻辑中操作2个数据库

我能想到的方法有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);

        
    }
}
发布了77 篇原创文章 · 获赞 21 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/f1370335844/article/details/90900989