クエリの(?)文字列を連結するにはどうすればよいですか?または%sはPHPのようです...私は+でmakeを知っていますが、そうではありません! クエリが必要ですPHPのように文字列値を変更しますか?または%sの(AndroidのJavaで同様の)...プロジェクト内のすべてのモデルのAndroid Javaクエリ文字列変数宣言後の動的値
package yyy.yyy.yyy.yyy.actions;
import android.content.Context;
import yyy.yyy.yyy.yyy.models.CategoriesModel;
public class CategoriesActions extends CategoriesModel {
protected String sqlInsert = "INSERT INTO categories (title) VALUES (?) ";
protected String sqlUpdate = "UPDATE categories SET title=? WHERE id=?";
protected String sqlDelete = "UPDATE FROM categories WHERE id=?";
protected String sqlSelect = "SELECT %s FROM categories %s %s %s"; // ? or %s
public CategoriesActions(Context context) {
super(context);
}
public boolean insert()
{
String cat_title = this.getTitle();
String sql = sqlInsert; // <---------- need concatenate cat_title in sqlInser (?)
//return sql;
return this.RunQuery(sql);
}
public String update()
{
String sql = "";
return sql;
}
public String delete()
{
String sql = "";
return sql;
}
public String select(String columns, String where, String order, String limit)
{
String sql = "";
return sql;
}
}
のDBConnection層は
package yyy.yyy.yyy.yyy.database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class dbConnection extends SQLiteOpenHelper {
private SQLiteDatabase conn;
public static final String DATABASE_NAME="App.Xitano";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_CATEGORIES = "categories";
private static final String TABLE_PAYMENT_TYPES = "payment_types";
private static final String TABLE_TRANSACTIONS = "transactions";
private static final String CATEGORIES_KEY_ID = "id";
private static final String CATEGORIES_KEY_TITLE = "title";
private static final String CATEGORIES_KEY_CREATED_AT = "created_at";
private static final String CATEGORIES_KEY_UPDATED_AT = "updated_at";
private static final String PAYMENT_TYPES_KEY_ID = "id";
private static final String PAYMENT_TYPES_KEY_TITLE = "title";
private static final String PAYMENT_TYPES_KEY_CREATED_AT = "created_at";
private static final String PAYMENT_TYPES_KEY_UPDATED_AT = "updated_at";
private static final String TRANSACTIONS_KEY_ID = "id";
private static final String TRANSACTIONS_KEY_IN_OUT = "in_out";
private static final String TRANSACTIONS_KEY_CATEGORIES_ID = "categories_id";
private static final String TRANSACTIONS_KEY_PAYMENT_TYPES_ID = "payment_types_id";
private static final String TRANSACTIONS_KEY_TITLE = "title";
private static final String TRANSACTIONS_KEY_AMOUNT = "amount";
private static final String CTRANSACTIONS_KEY_CREATED_AT = "created_at";
private static final String TRANSACTIONS_KEY_UPDATED_AT = "updated_at";
private static final String CREATE_TABLE_CATEGORIES = "CREATE TABLE " + TABLE_PAYMENT_TYPES + "("
+ PAYMENT_TYPES_KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ PAYMENT_TYPES_KEY_TITLE + " TEXT,"
+ PAYMENT_TYPES_KEY_CREATED_AT + "TIMESTAMP,"
+ PAYMENT_TYPES_KEY_UPDATED_AT + "TIMESTAMP);";
private static final String CREATE_TABLE_PAYMENT_TYPES = "CREATE TABLE " + TABLE_CATEGORIES + "("
+ CATEGORIES_KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ CATEGORIES_KEY_TITLE + " TEXT,"
+ CATEGORIES_KEY_CREATED_AT + "TIMESTAMP,"
+ CATEGORIES_KEY_UPDATED_AT + "TIMESTAMP);";
public dbConnection(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
Log.d("table", TABLE_CATEGORIES);
}
@Override
public void onCreate(SQLiteDatabase db) {
/*
db.execSQL(CREATE_TABLE_STUDENTS);
db.execSQL(CREATE_TABLE_USER_HOBBY);
db.execSQL(CREATE_TABLE_USER_CITY);
*/
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
/*
db.execSQL("DROP TABLE IF EXISTS '" + TABLE_USER + "'");
db.execSQL("DROP TABLE IF EXISTS '" + TABLE_USER_HOBBY + "'");
db.execSQL("DROP TABLE IF EXISTS '" + TABLE_USER_CITY + "'");
onCreate(db);
*/
}
public SQLiteDatabase ConnectWritable(){
this.conn = this.getWritableDatabase();
return this.conn;
}
public SQLiteDatabase ConnectReadable(){
this.conn = this.getReadableDatabase();
return this.conn;
}
public boolean RunQuery(String sql){
SQLiteDatabase stm = this.ConnectWritable();
stm.execSQL(sql);
return true;
}
public Cursor RunSelect(String sql){
SQLiteDatabase stm = this.ConnectReadable();
Cursor cursor = stm.rawQuery(sql, null);
return cursor;
}
public int RunCount(String sql){
SQLiteDatabase stm = this.ConnectReadable();
Cursor cursor = stm.rawQuery(sql, null);
cursor.moveToFirst();
if (cursor.getCount() > 0 && cursor.getColumnCount() > 0) {
cursor.close();
return cursor.getInt(0);
} else {
cursor.close();
return 0;
}
}
public void Disconnect(){
this.conn.close();
this.conn = null;
}
}
モデルレイヤ(のDBConnectionを拡張する(プロジェクト内のすべてのモデルは、このクラス(ジェネリック)は拡張します)クラス(ジェネリック)
package yyy.yyy.yyy.yyy.models;
import android.content.Context;
import yyy.yyy.yyy.yyy.database.dbConnection;
import java.io.Serializable;
public class CategoriesModel extends dbConnection implements Serializable {
private int id;
private String title;
public CategoriesModel(Context context) {
super(context);
}
public void setId(int id) {
this.id = id;
}
public void setTitle(String title) {
this.title = title;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
}
はありがとうございました!
GoogleでJavaの文を準備することをお勧めします。 – bated
私は信じていない準備ができて声明はこの層で良いまたは仕事です! –
私はこのポストにレイヤーを更新して挿入します... 誰でもレイヤーでこの作品を作るためのアイデアはありますか? ty –