2

我正在与 android 进行 SqlServer2008 r2 连接。

我的代码如下:

public class MainActivity extends Activity {


    String url="jdbc:sqlserver://localhost;instance=14GRAFICALI\\MSSQLSERVER2008;databaseName=AndroidDB;integrated security=true";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        TextView tvData=(TextView)findViewById(R.id.tvSelectedData);

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            Connection conn =DriverManager.getConnection(url);                   

            System.out.println("connected");
            Statement statement=conn.createStatement();
            ResultSet resultSet=statement.executeQuery("select * from AndroidDB");
            while(resultSet.next()){
                tvData.setText(" Data1 : "+resultSet.getString(1)+"  Data 2 : "+resultSet.getNString(2));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

此代码不起作用并在线给我错误:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

错误:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

但是当我检查这个路径时,文件在上面的路径中。

看看它:

在此处输入图像描述

可能是什么问题?

请帮我。

编辑

Java构建路径:在此处输入图像描述

库:

在此处输入图像描述

4

4 回答 4

1

确保在您的类路径中包含 SQLServerDriver 类的 jar,如此所述。

如果您使用的是 Eclipse,请右键单击您的项目,然后单击 Java Build Path,在 Libraries 选项卡下,检查 jar 是否存在并且不存在同一个 jar 的其他版本。

于 2013-09-06T10:37:55.630 回答
1

根据微软 msdn 论坛上的这个线程,使用不同的 JDBC 驱动程序应该可以工作。虽然我自己没有测试过。

于 2013-09-06T10:42:23.997 回答
1

CLASSPATH 变量是 Java 虚拟机 (JVM) 用于在您的计算机上定位 JDBC 驱动程序的搜索字符串。如果驱动程序未在 CLASSPATH 变量中列出,则在尝试加载驱动程序时会收到以下错误消息:java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver

JDBC 驱动程序不是 Java SDK 的一部分。如果要使用它,必须将类路径设置为包含 sqljdbc.jar 文件或 sqljdbc4.jar 文件。如果类路径缺少 sqljdbc.jar 或 sqljdbc4.jar 的条目,您的应用程序将抛出常见的“找不到类”异常。

sqljdbc.jar 文件和 sqljdbc4.jar 文件安装在以下位置:

<installation directory>\sqljdbc_<version>\<language>\sqljdbc.jar
<installation directory>\sqljdbc_<version>\<language>\sqljdbc4.jar

以下是用于 Windows 应用程序的 CLASSPATH 语句的示例:

CLASSPATH =.;C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc.jar 

以下是用于 Unix/Linux 应用程序的 CLASSPATH 语句的示例:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_4.0/enu/sqljdbc.jar 

您必须确保 CLASSPATH 语句仅包含一个 Microsoft JDBC Driver for SQL Server,例如 sqljdbc.jar 或 sqljdbc4.jar。

于 2013-09-06T10:48:03.263 回答
0

当我们将 Android 直接连接到 SQLServer 时,有几个步骤需要被愚弄。

我在这里的回答中提到了每一个详细的步骤:

尽管在项目中添加了特定的 jar,但找不到类(android 到 sqlserver,没有 web 服务)

请按照阶段进行,我相信您会克服所有错误。

于 2014-01-16T05:23:52.577 回答