id不会生成唯一的id。 有大学名单,大学名单和学校名单,我必须加入书签。当我为学校的第一项添加书签时,学院和大学的项目都被加入书签。如何解决?
DatabaseHelper类
<script type="text/javascript">
var check = 0;
var ok;
</script>
<div ng-repeat="house in houses">
<div ng-repeat="img in house_imgs">
<section ng-if="house.id == img.house_id">
<script type="text/javascript">
check = 1;
ok = img.house_img;
</script>
</section>
</div>
<div ng-if="check == 1">
<img src="{{asset('house_img/')}}/@{{ok}}" >
</div>
</div>
BookmarkAdapter类
package com.javacodegeeks.enterprise.rest.javaneturlclient;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class JavaNetURLRESTFulClient {
private static final String targetURL = "http://localhost:8080/w/JSONService";
public static void main(String[] args) {
try {
URL targetUrl = new URL(targetURL);
HttpURLConnection httpConnection = (HttpURLConnection) targetUrl.openConnection();
httpConnection.setDoOutput(true);
httpConnection.setRequestMethod("POST");
httpConnection.setRequestProperty("Content-Type", "application/json");
String input = "{\"id\":1,\"firstName\":\"Liam\",\"age\":22,\"lastName\":\"Marco\"}";
OutputStream outputStream = httpConnection.getOutputStream();
outputStream.write(input.getBytes());
outputStream.flush();
if (httpConnection.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ httpConnection.getResponseCode());
}
BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
(httpConnection.getInputStream())));
String output;
System.out.println("Output from Server:\n");
while ((output = responseBuffer.readLine()) != null) {
System.out.println(output);
}
httpConnection.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
DatabaseupdatedListener
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseUpdatedListener databaseUpdatedListener;
static final String DATABASE_NAME = "BookmarkDatabase";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME_BOOKMARK = "bookmark";
// Contact table columns name
private static final String ID = "Id";
private static final String NAME = "Name";
private static final String ADDRESS = "Address";
private static final String LOGO = "Logo";
private static final String COUNTRY = "country";
private static final String PHONE = "phone";
private static final String EMAIL = "email";
private static final String WEBSITE = "website";
private static final String INSTITUTION_TYPE = "institution_type";
private static final String ESTABLISHED_DATE = "establishment_date";
private static final String ADMISSION_OPEN_FROM = "admission_open_from";
private static final String ADMISSION_OPEN_TO = "admission_open_to";
private static final String LATITUDE = "latitude";
private static final String LONGITUDE = "longitude";
String createTableBookmark = "Create table if not exists `Bookmark` (" + "`name` TEXT," + "`location` TEXT," + "`logo` TEXT);";
String CREATE_SCHOOL_BOOKMARK_TABLE = "CREATE TABLE " + TABLE_NAME_BOOKMARK + "("
+ ID + " INTEGER PRIMARY KEY AUTOINCREMENT "
+ NAME + " TEXT, "
+ LOGO + " TEXT, "
+ ADDRESS + " TEXT, "
+ COUNTRY + " TEXT, "
+ PHONE + " TEXT, "
+ EMAIL + " TEXT, "
+ WEBSITE + " TEXT, "
+ INSTITUTION_TYPE + " TEXT, "
+ ESTABLISHED_DATE + " TEXT, "
+ ADMISSION_OPEN_FROM + " TEXT, "
+ ADMISSION_OPEN_TO + " TEXT, "
+ LATITUDE + " TEXT, "
+ LONGITUDE + " TEXT " + ")";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void insertBookmarkData(Bookmarkitem bookmarkitem) {
SQLiteDatabase db = getWritableDatabase();
ContentValues content = new ContentValues();
content.put("name", bookmarkitem.name);
content.put("location", bookmarkitem.address);
content.put("logo", bookmarkitem.logo);
db.insert("Bookmark", null, content);
}
public ArrayList<Bookmarkitem> getBookmarkist() {
String sql = "select * from Bookmark ";
ArrayList<Bookmarkitem> bookmarklist = new ArrayList<Bookmarkitem>();
Cursor c = getWritableDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
Bookmarkitem info = new Bookmarkitem();
info.name = c.getString(c.getColumnIndex("name"));
info.address = c.getString(c.getColumnIndex("location"));
info.logo = c.getString(c.getColumnIndex("logo"));
bookmarklist.add(info);
}
c.close();
return bookmarklist;
}
public Bookmarkitem getBookmarkData(String bookmarkName) {
String sql = "select * from Bookmark where id='" + bookmarkName + "'";
Cursor c = getWritableDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
Bookmarkitem info = new Bookmarkitem();
info.name = c.getString(c.getColumnIndex("name"));
info.address = c.getString(c.getColumnIndex("location"));
info.logo = c.getString(c.getColumnIndex("logo"));
}
c.close();
Bookmarkitem info = null;
return info;
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
// TODO Auto-generated method stub
sqLiteDatabase.execSQL(CREATE_SCHOOL_BOOKMARK_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int arg1, int arg2) {
// TODO Auto-generated method stub
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME_BOOKMARK);
onCreate(sqLiteDatabase);
}
public void addSchoolBookmark(Bookmarkitem bookmarkitem, MenuItem menuItem) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ID, bookmarkitem.getBookmarkID());
values.put(NAME, bookmarkitem.getName());
values.put(LOGO, bookmarkitem.getLogo());
values.put(ADDRESS, bookmarkitem.getAddress());
values.put(COUNTRY, bookmarkitem.getCountry());
values.put(PHONE, bookmarkitem.getPhone());
values.put(EMAIL, bookmarkitem.getEmail());
values.put(WEBSITE, bookmarkitem.getWebsite());
values.put(INSTITUTION_TYPE, bookmarkitem.getInstitution_type());
values.put(ESTABLISHED_DATE, bookmarkitem.getEstablishment_date());
values.put(ADMISSION_OPEN_FROM, bookmarkitem.getAdmission_open_from());
values.put(ADMISSION_OPEN_TO, bookmarkitem.getAdmission_open_to());
values.put(LATITUDE, bookmarkitem.getLatitude());
values.put(LONGITUDE, bookmarkitem.getLongitude());
//inserting row
if (db.insert(TABLE_NAME_BOOKMARK, null, values) != -1) {
//
databaseUpdatedListener.setDatabaseSuccess(bookmarkitem.getName(), menuItem);
}
/* else {
databaseUpdatedListener.setDatabaseError("Failed to Delete");
} */
// db.beginTransaction();
db.close();
}
public List<Bookmarkitem> getAllSchoolBookmark() {
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery = "SELECT * FROM " + TABLE_NAME_BOOKMARK;
List<Bookmarkitem> bookmarkitems = new ArrayList<>();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Bookmarkitem bookmarkitem = new Bookmarkitem();
bookmarkitem.setBookmarkID(Integer.parseInt(cursor.getString(0)));
bookmarkitem.setName(cursor.getString(1));
bookmarkitem.setLogo(cursor.getString(2));
bookmarkitem.setAddress(cursor.getString(3));
bookmarkitem.setCountry(cursor.getString(4));
bookmarkitem.setPhone(cursor.getString(5));
bookmarkitem.setEmail(cursor.getString(6));
bookmarkitem.setWebsite(cursor.getString(7));
bookmarkitem.setInstitution_type(cursor.getString(8));
bookmarkitem.setEstablishment_date(cursor.getString(9));
bookmarkitem.setAdmission_open_from(cursor.getString(10));
bookmarkitem.setAdmission_open_to(cursor.getString(11));
bookmarkitem.setLatitude(cursor.getString(12));
bookmarkitem.setLongitude(cursor.getString(13));
bookmarkitems.add(bookmarkitem);
} while (cursor.moveToNext());
}
return bookmarkitems;
}
public boolean removeBookmarkItem(String id) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_NAME_BOOKMARK, ID + "=" + id, null) > 0;
}
public Bookmarkitem getBoomarkDetailByID(String id) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = null;
String empName = "";
try {
Bookmarkitem bookmarkitem = new Bookmarkitem();
cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME_BOOKMARK + " WHERE " + ID + "=?", new String[]{id + ""});
if (cursor.getCount() > 0) {
cursor.moveToFirst();
bookmarkitem.setBookmarkID(Integer.parseInt(cursor.getString(0)));
bookmarkitem.setName(cursor.getString(1));
bookmarkitem.setLogo(cursor.getString(2));
bookmarkitem.setAddress(cursor.getString(3));
bookmarkitem.setCountry(cursor.getString(4));
bookmarkitem.setPhone(cursor.getString(5));
bookmarkitem.setEmail(cursor.getString(6));
bookmarkitem.setWebsite(cursor.getString(7));
bookmarkitem.setInstitution_type(cursor.getString(8));
bookmarkitem.setEstablishment_date(cursor.getString(9));
bookmarkitem.setAdmission_open_from(cursor.getString(10));
bookmarkitem.setAdmission_open_to(cursor.getString(11));
bookmarkitem.setLatitude(cursor.getString(12));
bookmarkitem.setLongitude(cursor.getString(13));
}
return bookmarkitem;
} finally {
cursor.close();
}
}
}
在数据库中插入时没有生成唯一ID。如何解决?
答案 0 :(得分:1)
不同的字段名称。
private static final String ID = "Id";
String sql = "select * from Bookmark where id='" + bookmarkName + "'"; // why id ? must be ID
演示示例。
private static final String USER_ID= "user_id";
String sql = "select * from Bookmark where user_id='" + bookmarkName + "'";
cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME_BOOKMARK + " WHERE " + USER_ID+ "=?", new String[]{id + ""});
然后卸载旧应用并重新运行。
答案 1 :(得分:0)
您无需明确添加ID
列。请尝试以下。
首先为列名创建合约类
public static class ColumnNameEntry implements BaseColumns {
private static final String NAME = "Name";
private static final String ADDRESS = "Address";
private static final String LOGO = "Logo";
private static final String COUNTRY = "country";
private static final String PHONE = "phone";
private static final String EMAIL = "email";
private static final String WEBSITE = "website";
private static final String INSTITUTION_TYPE = "institution_type";
private static final String ESTABLISHED_DATE = "establishment_date";
private static final String ADMISSION_OPEN_FROM = "admission_open_from";
private static final String ADMISSION_OPEN_TO = "admission_open_to";
private static final String LATITUDE = "latitude";
private static final String LONGITUDE = "longitude";
}
实施BaseColumns
类会自动提供列_id
,这将自动递增
现在创建表格如下
String CREATE_SCHOOL_BOOKMARK_TABLE = "CREATE TABLE " + TABLE_NAME_BOOKMARK + "("
+ ColumnNameEntry._ID + " INTEGER PRIMARY KEY "....
参考this教程