Java连接SQL Server 2000数据库时,有两种方法:

(1)通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar。但是Microsoft官网上已经找不到这些驱动,其提供的sqljdbc.jar和sqljdbc4.jar并不支持SQL Server 2000。

驱动程序名称:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname
数据库连接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url

(2)通过jTDS驱动连接。下载地址:http://sourceforge.net/projects/jtds/files/jtds/

驱动程序名称:net.sourceforge.jtds.jdbc.Driver(即下面的classforname
数据库连接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url

采用第二种方法连接时,可能报错:

java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver : Unsupported major.minor version 51.0

JDK的版本号对应:


首先下载JTDS(http://sourceforge.net/projects/jtds/files/jtds/),这里有JTDS的各种版本,起初下的是jtds-1.3.1,但在使用中总出现

ClassNotFound:net.sourceforge.jtds.jdbc.Driver 错误,后来下载了1.2.7版本,解决了这个问题

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity {private String UserName = "sa";private String Password = "sa";    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                ConnectTask dt = new ConnectTask();        dt.execute();    }        class ConnectTask extends AsyncTask    {    Connection con = null;    @Overrideprotected void onPreExecute() {    //第一个执行方法super.onPreExecute();}    @Overrideprotected String doInBackground(Integer... params) {//建立于数据库的连接try {Class.forName( "net.sourceforge.jtds.jdbc.Driver");con = DriverManager.getConnection( "jdbc:jtds:sqlserver://10.0.2.2:1433/AndroidSample", UserName, Password);    //10.0.2.2是使用模拟器是用的本机(pc)的IP,androidSample是我的数据库名称testConnection(con);//测试数据库连接} catch (ClassNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();Log.e("Class.forName::ClassNotFoundException", e1.getMessage());}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "执行完毕";}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);}public void testConnection(Connection con) throws java.sql.SQLException {                try {                String sql = "SELECT * FROM Seed.Person";//查询表名为“Seed.Person”的所有内容               Statement stmt = con.createStatement();//创建Statement               ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor                             while (rs.next()) {//ResultSet最初指向第一行                   Log.e("&&&&&", rs.getString("NameChs"));                Log.e("&&&&&", rs.getString("OperateUserName"));                              }                rs.close();              stmt.close();          } catch (SQLException e) {              System.out.println(e.getMessage().toString());          } finally {              if (con != null)                  try {                      con.close();                  } catch (SQLException e) {                  }          }      }    }}

   

主要遇到了两个问题:

1、ClassNotFound错误:如果jtds库都导入了,还有这个问题,可能是jtds版本的问题。我最初用的jtds-1,3,1错误,后来用的jtds-1.2.7后解决了;

2、与数据库的连接涉及网络操作,不能直接写在OnCreate函数中,代码中单独定义了一个类,进行数据库的操作。


使用时会遇到JDTS版本和JDK版本不匹配问题:

 

J2SE 7 = 51 (0x33 hex),

J2SE 6.0 = 50 (0x32 hex),
J2SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).

一般JDK7对应JTDS的1.3.x版本

JDK6对应1.2.x版本





更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android(安卓)开发建立经验分享...
  3. Android(安卓)Studio中提示:Project SDK is not defined
  4. Android开发 Fiddler抓包工具简介
  5. Android数据库(SQLiteDatabase)使用小结
  6. 解决AndroidStudio中Error:Android(安卓)Dex: [xxx] Failed to l
  7. Android(安卓)中不同的系统版本隐藏和显示systemui方法
  8. android源码下载-Windwos下使用清华镜像
  9. 最新历史版本 :Android(安卓)Bluetooth

随机推荐

  1. Android的源代码结构
  2. Android(安卓)UI之ImageButton(带图标的
  3. Learning Android(安卓)第1章 - 工欲善其
  4. Android进程的内存管理分析
  5. Android项目优化宝典
  6. android进程在管理器中被杀死
  7. Android(安卓)高手进阶教程(十四)之----A
  8. Android(安卓)开发中Parcel存储类型和数
  9. Android(安卓)学习
  10. android - 为安全而设计 - 1 - 开发文档