我在android中使用以下代码进行SQLConnection:
public void queryResultSet(String CommandSQL) throws ClassNotFoundException, java.sql.SQLException
{
ResultSet rs;
Connection conn = null;
Toast msg1 = Toast.makeText(getBaseContext(),
"Name = " + CommandSQL, Toast.LENGTH_LONG);
msg1.show();
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String username="14Graficali\\Administrator";
String ConnUrl="jdbc:jtds:sqlserver://14GRAFICALI\\MSSQLSERVER2008;DatabaseName=DVDKiosk;user=14Graficali\\Administrator;Instance=SQLExpress";
conn = DriverManager.getConnection(ConnUrl);
Statement st=conn.createStatement();
rs=st.executeQuery(CommandSQL);
while(rs.next())
{
Toast msg2 = Toast.makeText(getBaseContext(),
"Name = " + rs.getString("UserName"), Toast.LENGTH_LONG);
msg2.show();
}
}
我已经包含了net.sourceforge.jtds.jdbc.Driver
,如下所示:
堆栈追踪:
08-20 10:57:42.087: W/System.err(400): java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
08-20 10:57:42.087: W/System.err(400): at java.lang.Class.classForName(Native Method)
08-20 10:57:42.087: W/System.err(400): at java.lang.Class.forName(Class.java:234)
08-20 10:57:42.087: W/System.err(400): at java.lang.Class.forName(Class.java:181)
08-20 10:57:42.087: W/System.err(400): at com.example.registrationapp.Login.queryResultSet(Login.java:93)
08-20 10:57:42.087: W/System.err(400): at com.example.registrationapp.Login$1.onClick(Login.java:126)
08-20 10:57:42.087: W/System.err(400): at android.view.View.performClick(View.java:2485)
08-20 10:57:42.087: W/System.err(400): at android.view.View$PerformClick.run(View.java:9080)
08-20 10:57:42.087: W/System.err(400): at android.os.Handler.handleCallback(Handler.java:587)
08-20 10:57:42.087: W/System.err(400): at android.os.Handler.dispatchMessage(Handler.java:92)
08-20 10:57:42.098: W/System.err(400): at android.os.Looper.loop(Looper.java:123)
08-20 10:57:42.098: W/System.err(400): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-20 10:57:42.098: W/System.err(400): at java.lang.reflect.Method.invokeNative(Native Method)
08-20 10:57:42.098: W/System.err(400): at java.lang.reflect.Method.invoke(Method.java:507)
08-20 10:57:42.098: W/System.err(400): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-20 10:57:42.098: W/System.err(400): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-20 10:57:42.098: W/System.err(400): at dalvik.system.NativeStart.main(Native Method)
08-20 10:57:42.098: W/System.err(400): Caused by: java.lang.NoClassDefFoundError: net.sourceforge.jtds.jdbc.Driver
08-20 10:57:42.107: W/System.err(400): ... 16 more
08-20 10:57:42.107: W/System.err(400): Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver in loader dalvik.system.PathClassLoader[/data/app/com.example.registrationapp-1.apk]
08-20 10:57:42.107: W/System.err(400): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
08-20 10:57:42.107: W/System.err(400): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
08-20 10:57:42.107: W/System.err(400): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
请帮帮我。
答案 0 :(得分:2)
如果你已经添加了jtds-1.2.5驱动程序,那很好。否则:
右键单击项目>属性> “库”选项卡通过单击“添加外部JAR”
添加jtds-1.2.5.jar文件接下来,在Order and Export选项卡(Java Build Path窗口中的Libraries右侧)中,选中jtds-1.2.5.jar(以及您可能拥有的任何其他外部jar)的复选框。
这将导出包含带有.apk文件的驱动程序的.jar。
答案 1 :(得分:0)
如果您使用ProGuard,那么您的类可能会被它删除,因为它仅用于反射。如果不这样做,Android仍然可能因某些原因无法加载类。在软件包安装过程中查看LogCat。
答案 2 :(得分:0)
右键单击项目 - 属性 - java构建路径 - 订购和导出 - 勾选Android私有库和您添加的所有库