Installation
You will need to download 2 files to use the plugin.
sqlitegen_eclipse_site_xxx.jar is a file containing an Eclipse plugin installation site in jar form. Download this file and configure it as a feature download site in the Eclipse software update panel; then you can install the plugin from it.
com.antlersoft.android.db_xxx.jar is a library jar with the dependencies required by the code generated by the plugin. Add this file as a library to the build path of any Eclipse project that will use the plugin.
Using the Plugin
The plugin will only work with Android projects. Enable it on a project by right-clicking on the project and setting the checkbox on the SQLiteGen... option in the project menu.
The plugin will look for interfaces in the project that have the annotation com.antlersoft.android.db.TableInterface Accessor methods within the interface annotated with com.antlersoft.android.db.FieldAccessor will define columns in the table. You can specify names and column types through fields in the annotation; refer to the (sadly incomplete) Javadoc for details. When the plugin sees the annotated interface, it will create an (optionally abstract) class implementing the interface that includes implementations of the accessor methods, static fields for field names and the table name, and methods for reading from, inserting and updating records in the table.
Example
This code:
/**
* Copyright (C) 2009 Michael A. MacDonald
*/
package android.androidVNC;
import com.antlersoft.android.db.*;
@TableInterface(ImplementingClassName="AbstractConnectionBean",TableName="CONNECTION_BEAN")
interface IConnectionBean {
@FieldAccessor
long get_Id();
@FieldAccessor
String getNickname();
@FieldAccessor
String getAddress();
@FieldAccessor
int getPort();
@FieldAccessor
String getPassword();
@FieldAccessor
String getColorModel();
@FieldAccessor
boolean getForceFull();
@FieldAccessor
String getRepeaterId();
}
generates this file:
// This class was generated from android.androidVNC.IConnectionBean by a tool
// Do not edit this file directly
package android.androidVNC;
public abstract class AbstractConnectionBean extends com.antlersoft.android.dbimpl.IdImplementationBase implements IConnectionBean {
public static final String GEN_TABLE_NAME = "CONNECTION_BEAN";
public static final int GEN_COUNT = 8;
// Field constants
public static final String GEN_FIELD__ID = "_ID";
public static final int GEN_ID__ID = 0;
public static final String GEN_FIELD_NICKNAME = "NICKNAME";
public static final int GEN_ID_NICKNAME = 1;
public static final String GEN_FIELD_ADDRESS = "ADDRESS";
public static final int GEN_ID_ADDRESS = 2;
public static final String GEN_FIELD_PORT = "PORT";
public static final int GEN_ID_PORT = 3;
public static final String GEN_FIELD_PASSWORD = "PASSWORD";
public static final int GEN_ID_PASSWORD = 4;
public static final String GEN_FIELD_COLORMODEL = "COLORMODEL";
public static final int GEN_ID_COLORMODEL = 5;
public static final String GEN_FIELD_FORCEFULL = "FORCEFULL";
public static final int GEN_ID_FORCEFULL = 6;
public static final String GEN_FIELD_REPEATERID = "REPEATERID";
public static final int GEN_ID_REPEATERID = 7;
// SQL Command for creating the table
public static String GEN_CREATE = "CREATE TABLE CONNECTION_BEAN (" +
"_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"NICKNAME TEXT," +
"ADDRESS TEXT," +
"PORT INTEGER," +
"PASSWORD TEXT," +
"COLORMODEL TEXT," +
"FORCEFULL INTEGER," +
"REPEATERID TEXT" +
")";
// Members corresponding to defined fields
private long gen__Id;
private java.lang.String gen_nickname;
private java.lang.String gen_address;
private int gen_port;
private java.lang.String gen_password;
private java.lang.String gen_colorModel;
private boolean gen_forceFull;
private java.lang.String gen_repeaterId;
public String Gen_tableName() { return GEN_TABLE_NAME; }
// Field accessors
public long get_Id() { return gen__Id; }
public void set_Id(long arg__Id) { gen__Id = arg__Id; }
public java.lang.String getNickname() { return gen_nickname; }
public void setNickname(java.lang.String arg_nickname) { gen_nickname = arg_nickname; }
public java.lang.String getAddress() { return gen_address; }
public void setAddress(java.lang.String arg_address) { gen_address = arg_address; }
public int getPort() { return gen_port; }
public void setPort(int arg_port) { gen_port = arg_port; }
public java.lang.String getPassword() { return gen_password; }
public void setPassword(java.lang.String arg_password) { gen_password = arg_password; }
public java.lang.String getColorModel() { return gen_colorModel; }
public void setColorModel(java.lang.String arg_colorModel) { gen_colorModel = arg_colorModel; }
public boolean getForceFull() { return gen_forceFull; }
public void setForceFull(boolean arg_forceFull) { gen_forceFull = arg_forceFull; }
public java.lang.String getRepeaterId() { return gen_repeaterId; }
public void setRepeaterId(java.lang.String arg_repeaterId) { gen_repeaterId = arg_repeaterId; }
public android.content.ContentValues Gen_getValues() {
android.content.ContentValues values=new android.content.ContentValues();
values.put(GEN_FIELD__ID,Long.toString(this.gen__Id));
values.put(GEN_FIELD_NICKNAME,this.gen_nickname);
values.put(GEN_FIELD_ADDRESS,this.gen_address);
values.put(GEN_FIELD_PORT,Integer.toString(this.gen_port));
values.put(GEN_FIELD_PASSWORD,this.gen_password);
values.put(GEN_FIELD_COLORMODEL,this.gen_colorModel);
values.put(GEN_FIELD_FORCEFULL,(this.gen_forceFull ? "1" : "0"));
values.put(GEN_FIELD_REPEATERID,this.gen_repeaterId);
return values;
}
/**
* Return an array that gives the column index in the cursor for each field defined
* @param cursor Database cursor over some columns, possibly including this table
* @return array of column indices; -1 if the column with that id is not in cursor
*/
public int[] Gen_columnIndices(android.database.Cursor cursor) {
int[] result=new int[GEN_COUNT];
result[0] = cursor.getColumnIndex(GEN_FIELD__ID);
result[1] = cursor.getColumnIndex(GEN_FIELD_NICKNAME);
result[2] = cursor.getColumnIndex(GEN_FIELD_ADDRESS);
result[3] = cursor.getColumnIndex(GEN_FIELD_PORT);
result[4] = cursor.getColumnIndex(GEN_FIELD_PASSWORD);
result[5] = cursor.getColumnIndex(GEN_FIELD_COLORMODEL);
result[6] = cursor.getColumnIndex(GEN_FIELD_FORCEFULL);
result[7] = cursor.getColumnIndex(GEN_FIELD_REPEATERID);
return result;
}
/**
* Populate one instance from a cursor
*/
public void Gen_populate(android.database.Cursor cursor,int[] columnIndices) {
if ( columnIndices[GEN_ID__ID] >= 0 && ! cursor.isNull(columnIndices[GEN_ID__ID])) {
gen__Id = cursor.getLong(columnIndices[GEN_ID__ID]);
}
if ( columnIndices[GEN_ID_NICKNAME] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_NICKNAME])) {
gen_nickname = cursor.getString(columnIndices[GEN_ID_NICKNAME]);
}
if ( columnIndices[GEN_ID_ADDRESS] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_ADDRESS])) {
gen_address = cursor.getString(columnIndices[GEN_ID_ADDRESS]);
}
if ( columnIndices[GEN_ID_PORT] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_PORT])) {
gen_port = (int)cursor.getInt(columnIndices[GEN_ID_PORT]);
}
if ( columnIndices[GEN_ID_PASSWORD] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_PASSWORD])) {
gen_password = cursor.getString(columnIndices[GEN_ID_PASSWORD]);
}
if ( columnIndices[GEN_ID_COLORMODEL] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_COLORMODEL])) {
gen_colorModel = cursor.getString(columnIndices[GEN_ID_COLORMODEL]);
}
if ( columnIndices[GEN_ID_FORCEFULL] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_FORCEFULL])) {
gen_forceFull = (cursor.getInt(columnIndices[GEN_ID_FORCEFULL]) != 0);
}
if ( columnIndices[GEN_ID_REPEATERID] >= 0 && ! cursor.isNull(columnIndices[GEN_ID_REPEATERID])) {
gen_repeaterId = cursor.getString(columnIndices[GEN_ID_REPEATERID]);
}
}
/**
* Populate one instance from a ContentValues
*/
public void Gen_populate(android.content.ContentValues values) {
gen__Id = values.getAsLong(GEN_FIELD__ID);
gen_nickname = values.getAsString(GEN_FIELD_NICKNAME);
gen_address = values.getAsString(GEN_FIELD_ADDRESS);
gen_port = (int)values.getAsInteger(GEN_FIELD_PORT);
gen_password = values.getAsString(GEN_FIELD_PASSWORD);
gen_colorModel = values.getAsString(GEN_FIELD_COLORMODEL);
gen_forceFull = (values.getAsInteger(GEN_FIELD_FORCEFULL) != 0);
gen_repeaterId = values.getAsString(GEN_FIELD_REPEATERID);
}
}
sqlitegen: http://code.google.com/p/sqlitegen/
android-vnc-viewer:http://code.google.com/p/android-vnc-viewer/
分享到:
相关推荐
Eclipse集成Android NDK说明 1 2 为什么要用NDK? 2 3 为什么要集成? 2 4 怎样操作? 2 4.1 预备条件 2 4.1.1 Cygwin 2 4.1.2 Eclipse 2 4.1.3 Eclipse CDT 3 4.1.4 Android SDK 3 4.1.5 Android NDK 3 ...
希望对初学者有帮助!这是常用的Eclipse开发工具!和已经装好的SDK插件之后的完整版。免安装!
eclipse下android 开发环境搭建 包括下载 地址
详细介绍了在eclipse中android项目下c/c++代码的自动编译,和在eclipse中用ant生成ndk需要的jni头文件,加速ndk的开发,因为是原创,费了不少心力和时间,所以设了6分,有人反映太贵了,现在调成3分,这下大家满意了...
(1)安装JDK。... (2)下载Android SDK并配置。下载地址:http://www.android123.com.cn/sdkxiazai/,下载好后,解压缩,运行SDK ...(3)安装Eclipse,版本:3.6.1,下载地址:http://eclipse.org/downloads/ 安装步骤省略。
安装方法: 打开eclipse后,在Help->Install New Software 弹出对话框,点击“Add...”,再弹出框,选择“Archive...”,选择这个ZIP文件,接着就Next...,eclipse会联网下载些文件,最后就finish
android开发eclipse环境代码字体大小更改和代码自动提示功能基本设置
我自己用的配置文件,用于PHP和android编写 。
eclipse android百度地图源代码
解决Android Eclipse连接Android7.0版本以上的手机,显示unknown,无logcat输出的问题 解决方式:1.将下载好的压缩解压包解压,复制ddmlib.jar 2.打开android eclipse 安装路径:D:\android-eclipse\eclipse\...
eclipse下android开发opencv配置图文教程,本人使用总结
使用android eclipse 写的一个简易计算器
Eclipse for Android Developers (includes Incubating components) https://www.eclipse.org/downloads/packages/release/neon/3/eclipse-android-developers-includes-incubating-components Package Description...
项目中遇到一个不想在开机时启动的app,所以利用了android中的两个方法:mActivityManager.forceStopPackage(packageName); mActivityManager.killBackgroundProcesses(packageName); 来杀死后台进程的demo,分享给...
android开发的计算器,开发环境为eclipse
Eclipse下用于开发Andriod手机应用的插件
Eclipse搭建Android开发环境及新建 新手必备
Android集成开发环境ADT+Eclipse+Android SDK,已经在Eclipse基础上集成装好,解压就可用
vlc android eclipse 工程 http://blog.csdn.net/zhutoubenben/article/details/43488187
解压后放到 \android_sdk\platforms\android-8\sources 就可以在eclipse看到源代码了