这是我的Connection Class的代码,但是连接没有建立。每当我打印con我得到null,谁能告诉我哪里出错了?我在app的lib文件夹中包含了jtds-1.3.1.jar。我无法理解我哪里出错了
package com.jazzitup.music;
import android.annotation.SuppressLint;
import android.os.StrictMode;
import android.util.Log;
import java.sql.*;
import net.sourceforge.jtds.jdbc.*;
public class ConnectionClass {
@SuppressLint("NewApi")
public static Connection CONN() {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection conn = null;
String ConnURL = null;
try {
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("net.sourceforge.jtds.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:sqlserver://jazzitup.database.windows.net:1433;database=jazzitup.db;user=xxxxxxxx;password=xxxxxx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;");
System.out.println("CON:"+conn);
} catch (SQLException se) {
Log.e("ERRO", se.getMessage());
} catch (ClassNotFoundException e) {
Log.e("ERRO", e.getMessage());
} catch (Exception e) {
Log.e("ERRO", e.getMessage());
}
return conn;
}
}
答案 0 :(得分:0)
使用Web服务从设备访问数据库而不使用直接连接是优选的(或者我必须认为)。并非每个java的lib都适用于andoid。
答案 1 :(得分:0)
1.首先,让课程为extend SQLiteOpenHelper
2.创建该类的承包商并实施所需的所有功能。
的onCreate((SQLiteDatabasedb)
只需创建名为查询的字符串
并创建你想要的表,并execSql它,例如:
String query="create table if not exists table(text text,name text2,_id text)"; db.execSQL(query);
然后在sql lite中创建新行:
public void add_new_row(String text,String text2,String _id){ try{ ContentValues cn=new ContentValues(); cn.put("text",per_name); cn.put("text2",per_age); cn.put("_id",per_age); SQLiteDatabase db; db=getWritableDatabase(); db.insert("table",null,cn);} catch(Exception e){ Log.i("AddSql_lite","Print :"+e.to ); }
对于来自sqllite的读取行,您只需使用:
public String getRow_by_id(String _id){ string text =“”; 尝试{ 分贝= getWritableDatabase(); query =“select * from table where _id ='”+ _id +“'”;
Cursor cr=db.rawQuery(query, null); if(cr.moveToFirst()){ do{ text = cr.getString(0); String text2 = cr.getString(1); String _id = cr.getString(2); }while(cr.moveToNext()); } }catch(Exception e){ } return text; }
并且一个接一个地读取表格中的所有行:
public int get_all_Rows(){ string int counter = 0; 尝试{ 分贝= getWritableDatabase(); query =“select * from table”;
Cursor cr=db.rawQuery(query, null); if(cr.moveToFirst()){ do{ text = cr.getString(0); String text2 = cr.getString(1); String _id = cr.getString(2); counter++; }while(cr.moveToNext()); } }catch(Exception e){ } return counter; }
希望它能帮助您了解Sqllite如何工作以及如何正确构建它:)
为了让它运行如此:
SQLiteDataBase Sqllite_ref = new SQLiteDataBase(context,“VerName”, null,1);
Sqllite_ref.add_new_row( “嘿”, “hey4”, “1”); Sqllite_ref.add_new_row( “HEY2”, “hey5”, “2”); Sqllite_ref.add_new_row( “hey3”, “hey6”, “3”);
Sqllite_ref.getRow_by_id( “2”);>>>将返回“hey2” Sqllite_ref.get_all_Rows()>>>将返回3 [您拥有的物品数量 在sqllite]