gpt4 book ai didi

java - 此代码可用于连接到 SQL Server 2008 吗?

转载 作者:行者123 更新时间:2023-11-30 03:53:02 25 4
gpt4 key购买 nike

我正在尝试连接到 Microsoft SQL 2008 服务器,这似乎适用于其他人,但我运气不好。我知道直接连接到服务器不是最佳做法,但此应用程序仅用于演示,不会分发到我的设备之外。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import net.sourceforge.jtds.jdbc.*;

public void query2()
{
Log.i("Android"," MySQL Connect Example.");
Connection conn = null;
try {
String driver = "net.sourceforge.jtds.jdbc.Driver";
Class.forName(driver).newInstance();
//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
String connString = "jdbc:jtds:sqlserver://server_ip_address
:1433/DBNAME;encrypt=fasle;user=xxxxxxxxx;password=xxxxxxxx;instance=SQLEXPRESS;";
String username = "xxxxxx";
String password = "xxxxxxxxxx";
conn = DriverManager.getConnection(connString,username,password);
Log.w("Connection","open");
Statement stmt = conn.createStatement();
ResultSet reset = stmt.executeQuery("select * from TableName");

//Print the data to the console
while(reset.next()){
Log.w("Data:",reset.getString(3));
// Log.w("Data",reset.getString(2));
}
conn.close();
}
catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
}
}

如果不是,需要更改什么?它每次都在连接语句上崩溃。谢谢。

编辑:这是事件的 logcat。

12-12 06:11:41.273: E/AndroidRuntime(5745): 致命异常: main12-12 06:11:41.273: E/AndroidRuntime(5745): java.lang.IllegalStateException: 无法执行 Activity 的方法12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.view.View$1.onClick(View.java:3597)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.view.View.performClick(View.java:4202)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.view.View$PerformClick.run(View.java:17340)12-12 06:11:41.273: E/AndroidRuntime (5745): 在 android.os.Handler.handleCallback (Handler.java:725)12-12 06:11:41.273: E/AndroidRuntime (5745): 在 android.os.Handler.dispatchMessage (Handler.java:92)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.os.Looper.loop(Looper.java:137)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.app.ActivityThread.main(ActivityThread.java:5039)12-12 06:11:41.273:E/AndroidRuntime(5745):在 java.lang.reflect.Method.invokeNative( native 方法)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 java.lang.reflect.Method.invoke(Method.java:511)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)12-12 06:11:41.273:E/AndroidRuntime(5745):在 dalvik.system.NativeStart.main( native 方法)12-12 06:11:41.273: E/AndroidRuntime(5745): 引起:java.lang.reflect.InvocationTargetException12-12 06:11:41.273:E/AndroidRuntime(5745):在 java.lang.reflect.Method.invokeNative( native 方法)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 java.lang.reflect.Method.invoke(Method.java:511)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 android.view.View$1.onClick(View.java:3592)12-12 06:11:41.273: E/AndroidRuntime(5745): ... 11 更多12-12 06:11:41.273: E/AndroidRuntime(5745): Caused by: java.sql.SQLException: 没有合适的驱动程序12-12 06:11:41.273: E/AndroidRuntime(5745): 在 java.sql.DriverManager.getConnection(DriverManager.java:182)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 java.sql.DriverManager.getConnection(DriverManager.java:140)12-12 06:11:41.273: E/AndroidRuntime(5745): 在 com.nateapp.finalproject.MainActivity.sendData(MainActivity.java:266)12-12 06:11:41.273: E/AndroidRuntime(5745): ... 14 更多

它需要做的只是一个插入语句。

最佳答案

“崩溃”是什么样子的?发布堆栈跟踪。

这段代码在每一层都是错误的。您不应该在与数据库交互的方法中以这种方式创建连接。最好在别处创建它(例如从池中获取它)并将其传递到方法中。

您不会关闭 ResultSetStatement。关闭 Connection 不会清除它们。您应该在 finally block 中关闭它们。

这是您遇到问题的原因:

12-12 06:11:41.273: E/AndroidRuntime(5745): Caused by: java.sql.SQLException: No suitable driver

“没有合适的驱动程序”通常意味着连接 URL 已失效。检查一下。

关于java - 此代码可用于连接到 SQL Server 2008 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com