1. 苏葳的备忘录首页
  2. 编程

Java连接Sybase及Mysql

java jdbc sybase mysql最近有个项目,大致是要将Sybase库中的一些数据导到Mysql中去。由于程序并不经常调用,决定简单的用JDBC连接。Java连接Sybase的用法N年前就用过。当时连的是jdbc2类型驱动,此次下载了最新的jconnector 6.05版本,是jdbc 3.0标准的,连接12.5库一次通过。倒是连接Mysql库时遇到些麻烦。Sybase连接部份如下,与之前并无太大区别:

  String url = "jdbc:sybase:Tds:IP:PORT/DBNAME?charset=cp850&jconnect_version=6";
  try {
   Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance();
   Connection con = DriverManager.getConnection(url, "sa", "xxxxxxxx");// Sybase用
   Statement stmt = con.createStatement();
   ResultSet rs = stmt.executeQuery("select top 10 * from tbname");
   while (rs.next()) {
    System.out.println(rs.getString(1));
   }
  } catch (SQLException ex) {
   System.out.println(ex.getMessage());
  } catch (java.lang.Exception ex) {
   ex.printStackTrace();
  }

以前连接串中,用的是在本地客户端(DSEDIT)创建好的连接,此次直接用IP+端口,也连接成功,看来还是非常方便的,也许不需本地Sybase客户端就可连接成功?有时间测试。

连接Mysql时遇到些小问题,以前未连接过Mysql库,此次对方数据库为Mysql 4.0.20,是一个较老版本,查找相关文档,目前Mysql jdbc驱动最新版为5.1.17,下载尝试时,在 DriverManager.getConnection(url1, “user”, “passwd”);始终报”数据集为空,只允许update”之类的错误,由于还未到查询表的那一步,所以十分不理解。查看jdbc文档,原来5.X版本驱动只支持4.1以上的数据库版本,只有3.0.X版本才支持Mysql 4或3等旧版,又下载了3.0.17版本,测试,通过。又试了3.1.14版本,居然也通过,3.2.X版驱动有alpha标识,就不试了。还是用比较新的3.1.14版吧,有问题了再换回3.0.17。

  String url1 = "jdbc:mysql://IP:port/dbname";
  try {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   Connection con1 = DriverManager.getConnection(url1, "user", "pass");
    Statement stmt1 = con1.createStatement();
   String upd="insert into tab(dd,dd,dd) values(5,5,5)";
   int kk = stmt1.executeUpdate(upd);
  } catch (SQLException ex) {
   System.out.println(ex.getMessage());
  } catch (java.lang.Exception ex) {
   ex.printStackTrace();
  }

在Eclipse中添加外部引用其实挺方便,就在buildpath里面。。

另:

Catch出java.lang.Exception非常重要,否则编译就通不过,java这方面校验非常严格。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/315.html

发表评论

邮箱地址不会被公开。 必填项已用*标注