Java嵌入式数据库LMini-0.1.2及其通讯录使用示例发布

简介:
文章关键字:Java 嵌入式开发 DB data 通讯录 address book 文本数据库 微型 记录 数据

下载地址: [url]http://code.google.com/p/greenvm/downloads/list[/url]

LMini是Loonframework分支项目之一,它是一个仅有55KB的纯Java嵌入式文本数据库,不支持SQL语句,完全以面向对象方式进行数据操作,在Loonframework主包中主要负责实现缓存数据的硬盘持久化功能。但作为项目分支,LMini并非必须与Loonframework主包集成,也允许作为单独的微型数据库存在。

LMini的开发目的在于提供一种简单快捷的本地数据持久化方式,如游戏记录、文件缓存、简单的增、删、改、查操作都可以通过LMini得以实现,它的优势在于完全脱离java.sql包依赖,比db4o、sqllite体积更小,比Properties所提供的功能等多。

LMini通过MDB接口进行数据库操作,而根据MDB接口所获得的不同实例,操作模式又可分为如下三种,即:内存模式、单一文件模式及多文件模式。

内存模式:

实例化此模式后,将直接在内存开辟一块区域进行数据库模拟操作,当程序关闭时内存数据库也随之消失,不能持久化保存,调用方法为Engine.getMEMDB。

单一文件模式:

实例化此模式后,数据库将以文件形式存在,程序会自动产生唯一的物理文件于硬盘之上,所有操作也将基于此物理文件进行,只要此文件不被删除数据将永久存在,调用方法为Engine.getMDBOnly。

多文件模式:

实例化此模式后,数据库将以文件夹形式存在,程序会自动根据创建的表格产生多个物理文件于此文件夹中,所有操作将基于此文件夹进行
,只要此文件夹及其中文件不被破坏,数据将永久存在,调用方法为Engine.getMDBMany。

以上三种模式皆为接口实现,操作方法完全一致,仅在保存方式上有所分别。

基本操作方式:

1、数据库的创建与打开:

   当我们对MDB接口进行实例化,并调用begin方法后,LMini会自动监测指定位置是否已有文本数据库存在,有则加载其文件内容,没有将自动创建一个空数据库于指定位置。

   LMini以一个begin方法打开数据库连接,以end方法关闭连接,具体代码如下:

      
MDB mdb = Engine.getMDBOnly( "c:\\test.db");
mdb.begin();
mdb.end();


2、密码保护功能:

除内存模式之外,LMini提供了简单的密码保护功能,以防止数据库文件被他人盗用,只要在begin创建数据库时设定即可,密码错误时再次打开此文件将提示异常,具体代码如下:

       
MDB mdb = Engine.getMDBOnly( "test.db");
        mdb.openTable( "test",TypeBase.STRING);
         //设定密码
        mdb.begin( "wt98ab");
        mdb.end();


3、增、删、改、查:

    LMini以openTable方法打开或创建一个指定表格,但区别于其它数据库,Lmini每个表格仅允许保存一种数据类型,以简化LMini文件处理过程;目前其支持的类型为Long,Integer,String,Byte[],Object五种,我们可以通过Lmini提供的TypeBase类注入需要的类型。不填写情况Lmini将默认表格存储类型为Object,也就是所有经过序列化的对象都可以存储于本地硬盘之上。

    LMini针对CRUD提供了相对应的insert、select、update、delete方法以供调用,只要注入相关对象即可完成操作,无需用户关心转换细节,具体代码如下:

   
MDB mdb = Engine.getMDBOnly( "test.db");
        mdb.openTable( "test",TypeBase.STRING);
         //设定密码
        mdb.begin( "wt98ab");
         //插入数据
        mdb.insert( "久保", "砍砍砍");
        mdb.insert( "尾田""我要成为海军");
        mdb.insert( "岸本""都死光了");
         //删除数据
        mdb.delete( "岸本");
         //变更数据
        mdb.update( "尾田""我要成为海贼王");
         //查询
        System.out.println(mdb.select( "尾田"));
        mdb.end();

     
4、表格中数据的遍历:

   LMini提供了getTableKey方法以获得当前表格下所有字段名,提供了getTableList方法以获得当前表格下所有字段及数据,具体代码如下:

         
MDB mdb = Engine.getMDBOnly( "test.db");
                mdb.openTable( "test",TypeBase.STRING);
                 //设定密码
                mdb.begin( "wt98ab");
                 //插入数据
                mdb.insert( "久保", "砍砍砍");
                mdb.insert( "尾田""我要成为海军");
                mdb.insert( "岸本""都死光了");
                 //删除数据
                mdb.delete( "岸本");
                 //变更数据
                mdb.update( "尾田""我要成为海贼王");
                 //查询
                System.out.println( "尾田说:"+mdb.select( "尾田"));
             
                 for(Iterator it=mdb.getTableKey().iterator();it.hasNext();){
                        String name=(String)it.next();
                        System.out.println( "字段名:"+name);
                        System.out.println( "数据: "+(String)mdb.getTableList().get(name));
                }
             
                mdb.end();        

    
程序示例:

本例提供了一个Lmini操作通讯录的简单操作示例,利用开源metawidget项目所提供的addressbook-swing加以改造而成,仅替换其直接硬编码在Table中数据为真实操作Lmini数据库并修正部分英文窗体为中文,metawidget项目所有权利均与本人无关,本示例仅为借用其界面,特此声明。(PS:源码在jar中,另外使用metawidget的UI还挺费空间,要用5MB的支持库|||……)






LMini的操作方式非常简便,笔者昨天预告的TLOH项目的游戏存档器也将采用LMini加以实现,目前LMini还在不断完善中,希望各位看客能给予支持及指正,另外现在发的LMini比Loonframework主包中的版本差一次更新,具体差别到发布Loonframework-0.2.0时就能看到了。 

下载地址(这些小程序依例丢在code.google上):[url]http://code.google.com/p/greenvm/downloads/list[/url]



本文转自 cping 51CTO博客,原文链接:http://blog.51cto.com/cping1982/141192

相关文章
|
22天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——TestStu.java
hibernate正向生成数据库表以及配置——TestStu.java
16 1
|
22天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.java
hibernate正向生成数据库表以及配置——Teacher.java
11 0
|
22天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Student.java
hibernate正向生成数据库表以及配置——Student.java
10 0
|
28天前
|
Java 开发工具
【GDAL-java的四个常用代码示例】
【GDAL-java的四个常用代码示例】
32 0
|
14天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
25天前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
9 1
|
26天前
|
SQL Java 关系型数据库
在Python中编写Java数据库驱动是不可能的
在Python中编写Java数据库驱动是不可能的
|
26天前
|
SQL Java 关系型数据库
Java数据库访问
Java数据库访问
|
27天前
|
前端开发 Java 数据库
HTML、sqlserver数据库和java前七章节的复习(一)
HTML、sqlserver数据库和java前七章节的复习(一)
8 0
|
27天前
|
Oracle Java 关系型数据库
java实现遍历树形菜单方法——数据库表的创建
java实现遍历树形菜单方法——数据库表的创建
11 0