我在Netbeans IDE中使用CodeName One Java插件开发了一个移动应用程序。
CodeName One使用Database API。 https://www.codenameone.com/javadoc/com/codename1/db/Database.html
我正在运行一些测试(我想上传大约10个值,但是,只需通过上传ID,Fname和Lname值来测试连接等。
Database db = null;
Cursor cur = null;
String Fname = findTxtFirstn(c).getText();
String Lname = findTxtLastn(c).getText();
try{
Database ARdb = Display.getInstance().openOrCreate("RecordsDB.db");
System.out.println("Connection secured to database.");
ARdb.beginTransaction();
String createTable = "CREATE TABLE IF NOT EXISTS RecordsTable ("
+ "ID integer PRIMARY KEY,"
+ "First_Name text NOT NULL,"
+ "Last_Name text NOT NULL)";
String query = "insert into RecordsTable (ID,First_Name,Last_Name) values (3,'Test','Testerton')";
ARdb.execute(createTable);
ARdb.execute(query);
ARdb.commitTransaction();
} catch(Exception e){
System.out.println("Error! Connection Failed to DB" +e.getMessage());
} finally {
Util.cleanup (db);
Util.cleanup(cur);
}
我没有错误,一切都运行,但是,当我检查它时,值不在数据库中。我在这里错过了什么吗?我已经按照教程并查看了Codename One API。我找不到解决方案。
编辑:我需要更改每次运行的主号码的值(否则我得到一个错误:号码需要是唯一的),这告诉我,当我检查数据库时,值正存储在数据库中问题是没有记录,所以数据在哪里?
我使用DB Browser for SQLite。
答案 0 :(得分:0)
您是否尝试在交易中执行修改?在具有事务的数据库中,所有修改操作(CREATE,INSERT,...)都需要在事务中执行。
ARdb.beginTransaction();
// your create code
ARdb.commitTransaction();