ORM框架
来源:互联网 发布:python 2.6 2.7 区别 编辑:程序博客网 时间:2024/04/30 00:13
什么是ORM框架 ORM(object Relational Mapping)框架采用元数据
来描述与关系映射细节,把对象持久化到数据库中。就是利用java的反射机制把对象和数据库记录映射关联起来。
特点和优势:
基于ORM关系操作数据库
配置方便
几乎不需要编写任何SQL语句就能够保存和检索SQLite数据库记录
每个操作都封装为一个类,如save()和delete()
对象形式数据存取。
首先配置文件:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jike.activeandroiddemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:name="com.jike.activeandroiddemo.MyApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data
//数据库的名称 android:name="AA_DB_NAME" android:value="Stu.db" /> <meta-data
//数据库版本号 android:name="AA_DB_VERSION" android:value="1" /> <activity android:name="com.jike.activeandroiddemo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
public class MyApplication extends Application {@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();ActiveAndroid.initialize(this);}}
/** * 增删改查学生基本信息 * * @author Administrator * */public class MainActivity extends Activity {private Button btn_add;private ListView lv;private StuAdapter adapter;private ArrayList<Student> list = new ArrayList<Student>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {btn_add = (Button) this.findViewById(R.id.btn_add);lv = (ListView) this.findViewById(R.id.lv);adapter = new StuAdapter(this, list);lv.setAdapter(adapter);List<Student> stus = new Select().from(Student.class).execute();for (int i = 0; i < stus.size(); i++) {Student student = stus.get(i);student.name = "HanMeiMei";student.save();}list.addAll(stus);for (int i = 0; i < 8; i++) {Student stu = new Student();stu.name = "Lilei" + i;stu.age = 10 + i;stu.save();list.add(stu);}adapter.notifyDataSetChanged();btn_add.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Student stu = new Student();stu.name = "Lucy";stu.age = 12;stu.save();list.add(stu);adapter.notifyDataSetChanged();}});}}
@Table(name = "Students")public class Student extends Model {@Column(name = "Name")public String name;@Column(name = "Age")public Integer age;}
最后是适配器:
public class StuAdapter extends BaseAdapter {private Context context;private ArrayList<Student> list;public StuAdapter(Context c, ArrayList<Student> lists) {this.context = c;this.list = lists;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn list.get(arg0);}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {ViewHolder holder = null;if (convertView == null) {holder = new ViewHolder();convertView = View.inflate(context, R.layout.item_stu, null);holder.btn_del = (Button) convertView.findViewById(R.id.btn_del);holder.tv = (TextView) convertView.findViewById(R.id.tv);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}final Student stu = list.get(position);holder.tv.setText(stu.name + "\n" + stu.age);holder.btn_del.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {stu.delete();list.remove(position);notifyDataSetChanged();}});return convertView;}class ViewHolder {TextView tv;Button btn_del;}}
这个属性加上去 不会每次启动activity都去扫一遍
<meta-data android:name="AA_MODELL" android:value="com.jike.activeandroid.Item,com.jike.activeandroid.Category" />
升级版本的话 在assets目录下 新建migrations名字文件 如1.sql1.
1sql里写上:
ALTER TABLE Categoryes ADD COLUMN StuId INTEGER;
/**
* /migrations/升级后的版本号.sql
*
* ALTER TABLE Category ADD COLUMN Count INTEGER;
*
* @author Administrator
*
*/
0 0
- ORM框架
- ORM框架
- ORM框架
- ORM框架
- orm框架
- ORM框架
- ORM框架
- ORM 框架
- ORM框架
- ORM框架
- ORM框架
- ORM框架
- ORM框架
- ORM 框架
- ORM框架
- ORM框架
- ORM是什么? ORM框架是什么?
- Obj2db 轻量级ORM框架
- 2199 Can you solve this equation?
- 南山南原版G调
- 《深入理解计算机系统》读书笔记6---各种echo服务器的实现
- LeetCode(74) Search a 2D Matrix
- 算法 学习
- ORM框架
- git常用命令
- hdu1711-Number Sequence-kmp基础 模式匹配
- 关于字节流,字符流及BufferedReader
- java-web 资料整理
- 如何在SpriteBuilder中使用BM Font Label
- 矩阵的特征向量与特征值的几何意义
- win8的prolific USB-to-serial comm port驱动安装问题解决
- CSS基础