Android-sqlite的命令
創建表
//創建表
create table student(sid integer primary key autoincrement not null,
gender varchar(20) not null,
score integer not null);
增
insert into student(sname,gender,score) values('Li','male',88);
CREATE TABLE Cars(Id integer PRIMARY KEY, Name text, Cost integer);
INSERT INTO Cars VALUES(1,'Audi',52642);
刪
delete from student where sid=3;
改
update student set score=100,gender='male' where sname='Mike';
查
select * from student;
select * from student where gender='female';
//模糊查詢
select * from student where sname like '%a%';
select * from student where sname like 'a%';
//排序查詢
select * from student order by score desc; 降序
select * from student order by score; 默認升序
select * from student order by score asc; 升序
報錯:
android.database.sqlite.SQLiteException: no such column: (Sqlite code 1)
AndroidRuntime: FATAL EXCEPTION: main
Process: com.xq.mygreendao, PID: 1742
android.database.sqlite.SQLiteException: no such column: 許強 (Sqlite code 1): , while compiling: insert into user(name,age,sex,salary) values(許強,18,男,160000), (OS error - 2:No such file or directory)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:925)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:536)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:603)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:63)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1965)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1890)
at com.xq.mygreendao.db.helper.UserSqlUtils.insertSQL(UserSqlUtils.java:52)
at com.xq.mygreendao.MainActivity.insertSql(MainActivity.java:256)
at com.xq.mygreendao.MainActivity.onClick(MainActivity.java:125)
at android.view.View.performClick(View.java:5647)
at android.view.View$PerformClick.run(View.java:22479)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6623)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
檢查建表字段的類型,然后打印輸出的語句是否符合:
字段都為字符串。
public void insertSQL(String name, String age, String sex, String salary) {
SQLiteDatabase db = DBHelper.getInstance(context).getReadableDatabase();
//String stu_sql="insert into user(name,age,sex,salary) values('許強','18','男','12700')";
String strSql = "insert into " + UserTableUtil.TABLE_NAME +
"(" + UserTableUtil.NAME + "," + UserTableUtil.AGE + "," + UserTableUtil.SEX + "," + UserTableUtil.SALARY + ")" +
" values('" + name + "','" + age + "','" + sex + "','" + salary + ")";
Log.e("UserSqlUtils", "插入數據====" + strSql);
db.execSQL(strSql);
}
打印log:
insert into user(name,age,sex,salary) values('許強','18','男','500000)
發現最后少了一個單引號
修改后:
public void insertSQL(String name, String age, String sex, String salary) {
SQLiteDatabase db = DBHelper.getInstance(context).getReadableDatabase();
//String stu_sql="insert into user(name,age,sex,salary) values('許強','18','男','12700')";
String strSql = "insert into " + UserTableUtil.TABLE_NAME +
"(" + UserTableUtil.NAME + "," + UserTableUtil.AGE + "," + UserTableUtil.SEX + "," + UserTableUtil.SALARY + ")" +
" values('" + name + "','" + age + "','" + sex + "','" + salary + "')";
Log.e("UserSqlUtils", "插入數據====" + strSql);
db.execSQL(strSql);
}
再次運行打印log:
insert into user(name,age,sex,salary) values('許強','18','男','500000')
智能推薦
nmap命令的詳解
使用-sP參數對對應主機段的主機發送ICMP報文,可以查詢到哪些主機是存活的。 可以看到共有256臺主機是存活的。 如在我的虛擬機上,執行如下命令 可知我的22遠程端口是開發的,并且我的80端口是開放的。使用netstat也可以查看到 默認掃描的端口是在0-1024,我們也可以加入-p參數掃描端口范圍。 使用-sT參數可以更真實模擬TCP的三次握手請求,一般用時會更大些。而-sU則比較少用,而且跟...
linux的命令
1.了解以下Linux下的重要目錄/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp 在學習linux的時候,一般以root權限進入時,當返回到根目錄時,有好多的文件夾,這些文件夾都代表著什么呢。 在此之前,需要了解的是,在Linux下一切皆文件,即所有的存儲都是以文件的形式表現出來的。 •主目錄:/root、/ho...
shell的exec命令
工作中遇到運維人員掛supervisor的時候建議啟動使用命令control.sh start, 并且在control.sh 里面啟動命令: 使用man看下說明,可以看到exec是一個內部命令, 如這里說的exec是將要exec的命令替換當前的這個命令。所以這個意思是 如果你使用了exec之后,你當前的這個shell的pid就沒有了,被exec的命令所替代。 我們創建一個control.sh: 當...
HDFS的命令
(1)hdfs客戶端的位置 (2)啟動hdfs查看根目錄 (3)上傳文件到根目錄(此根目錄不是Linux的根目錄,是hdfs的根目錄) 上傳文件大小 hdfs最大存儲文件的大小為128兆一塊,因此如果上傳的文件為129兆時,文件會被切成2塊 上傳文件存儲的位置 查看是否上傳成功: a、命令查看 b、網站查看:客戶端網站:http://mini01:50070 (4)文件下載 (5)創建文件夾 (6...
猜你喜歡
Linux的htop命令
參考文章: https://linux.cn/article-3141-1.html https://blog.csdn.net/u011068702/article/details/54891324 https://www.cnblogs.com/yqsun/p/5396363.html 再學習top命令時,無意間看到了一篇htop的命令介紹。比較給力,送個大家。 在 Linux 系統中,top...
shell命令的替換
Shell 命令替換是指將命令的輸出結果賦值給某個變量。比如,在某個目錄中輸入 ls 命令可查看當前目錄中所有的文件。 Shell 中有兩種方式可以完成命令替換,一種是反引號,一種是$(),使用方法如下: 其中,variable 是變量名,commands 是要執行的命令。commands 可以只有一個命令,也可以有多個命令,多個命令之間以分號;分隔。 例如,date 命令用來獲得當前的系統時間,...
簡單的Linux命令
1.linux環境實踐,熟悉使用(網絡搜索) ls //list 列出當前文件夾的所有文件 cd //change directory 更改(切換)目錄 mkdir //make directory 創建目錄(文件夾) rm //remove 刪除文件(-f) mv //move 移動文件 touch //創建文件 pwd //print work directory打印當前工作目錄 2.在lin...
常用的ADB命令
前言 其實關于adb命令的博文已經很多而且有些寫的很全面的,但我之所以自己也寫一遍[而且內容不全]并不是想“狗尾續貂”,只是最近有一次忽然發現,以前用過的很多命令有些忘記了,平時想不起來直接度娘了。現在忽然感覺有必要記一下,雖然有點晚,但總比停下來強一些,寫一遍也讓自己對adb命令有個新的認識。以下所有的adb命令全部是本人在工作中使用過或者自己平時使用過的,如有記錄出錯或...