【JAVA开发】JDBC链接各大数据库(纯代码)

o-O-oO / 2024-08-30 / 原文

原创 OA圈子

在开发中,我们有时候会涉及到链接第三方数据库视图或者中间库,此时我们需要在OA代码中去创建相应的链接工具类,下面我们分享链接工具类的方法:

链接工具类:

import com.seeyon.ctp.common.AppContext;
import java.sql.*;

public class JdbcUtil {
    private static final String className = AppContext.getSystemProperty("ykk.driverClassName"); //驱动
    private static final String url = AppContext.getSystemProperty("ykk.dburl"); //链接串
    private static final String userName = AppContext.getSystemProperty("ykk.dbuserName"); //用户名
    private static final String password = AppContext.getSystemProperty("ykk.dbpassword"); //密码
  //连接数据库
  public static Connection getCon() {
    Connection con = null;
    try {
      Class.forName(className);
      con = (Connection)DriverManager.getConnection(url, userName, password);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return con;
  }
  //关闭数据
  public static void closeDB(ResultSet rs,PreparedStatement pstmt,Connection con) {
    try {
      if (rs != null) {
        rs.close();
      }
      if (pstmt != null) {
        pstmt.close();
      }
      if (con != null) {
        con.close();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

实现的增删改查方法:

查询方法:

public static List<JSONObject> query(String rq) {
   
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    JSONObject m = null;
    List<JSONObject> list = new ArrayList<JSONObject>();
    try {
      con = JdbcUtil.getCon();
      String sql = "select field0001,field0002 from talbe where field0003 >= ?";  
      pstmt = (PreparedStatement)con.prepareStatement(sql);
      pstmt.setString(1, rq);
      rs = (ResultSet)pstmt.executeQuery();
      while (rs.next()) {
        m= new JSONObject();
        m.accumulate("qxName",rs.getString("field0001"));
        m.accumulate("qxAdmin",(rs.getString("field0002")==null?"":rs.getString("field0002")));
        .....
        list.add(m);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      JdbcUtil.closeDB(rs, pstmt, con);
    }
    return list;
  }

修改


public static void update(String table,String qx,String col,String qxval,String colval) {
    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      con = JdbcUtil.getCon();
      String sql = "update table set col=? where qx=?";
      pstmt = (PreparedStatement)con.prepareStatement(sql);
      pstmt.setString(1, colval);
      pstmt.setString(2, qxval);
      pstmt.executeUpdate();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      ConnDB.closeDB(rs, pstmt, con);
    }
  }

下面分享几个场景的数据库连接驱动和链接串

oracle:

链接驱动:oracle.jdbc.driver.OracleDriver

链接串:jdbc:oracle:thin:@127.0.0.1:1521:v3x

对应的jar包:ojdbc14.jar

sqlserver:

链接驱动:net.sourceforge.jtds.jdbc.Driver

链接串:jdbc:jtds:sqlserver://127.0.0.1:1433/DBName

对应的jar包:sqljdbc4.jar

mysql:

链接驱动:com.mysql.jdbc.Driver

链接串:jdbc:mysql://127.0.01:3306/a8?characterEncoding=UTF-8

对应的jar包:mysql-connector-j-8.0.33.jar

达梦:

链接驱动:dm.jdbc.driver.DmDriver

链接串:jdbc:dm://127.0.0.1:5236

对应的jar包:DmJdbcDriver16-8.1.3.140.jar

人大金仓:

链接驱动:com.kingbase8.Driver

链接串:jdbc:kingbase://localhost:54321/myDatabase

对应的jar包:kingbase8-8.6.0.jar

jar包下载地址

https://mvnrepository.com/,可以通过该网站进行搜索下载,如下:

写在最后:以上代码可以直接复制使用,只需要替换相应的jar包,链接驱动和链接串就可以了。