问题描述
- android数据库插入问题老是出错。新手。很急,在线等。谢谢大神了
-
public class MyDatabaseHelper extends SQLiteOpenHelper
{
final String CREATE_TABLE_SQL =
"create table dict(_id integer primary " +
"key autoincrement , word , detail)";
public MyDatabaseHelper(Context context, String name, int version)
{
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
// 第一次使用数据库时自动建表
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db
, int oldVersion, int newVersion)
{
System.out.println("--------onUpdate Called--------"
+ oldVersion + "--->" + newVersion);
}
}public class Dict extends Activity{ MyDatabaseHelper dbHelper; Button insert = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dbHelper = new MyDatabaseHelper(this , "myDict.db3",1); insert = (Button) findViewById(R.id.insert); insert.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { String word = ((EditText)findViewById(R.id.word)).getText().toString(); String detail = ((EditText)findViewById(R.id.detail)).getText().toString(); insertData(dbHelper.getReadableDatabase(),"56465" ,"56165"); } }); } private void insertData(SQLiteDatabase db , String word , String detail){ db.execSQL("insert into dict values(null,?,?)" , new String[] {word ,detail}); } }
解决方案
insertData(dbHelper.getWritableDatabase(),"56465" ,"56165");不是getReadableDatabase
解决方案二:
getReadableDatabase()替换为getWritableDatabase()。这样做其实不好。最好是将分开到底层去操作数据库
解决方案三:
是的,直接在底层进行数据操作在安全性业绩可控性方面效果相对要好些
解决方案四:
是的,在底层操作数据。整体安全性和可控性好很多
时间: 2024-09-30 15:37:59