Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 452|回复: 0

[Java基础知识]db4o入门实例

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-2 14:15:00 | 显示全部楼层 |阅读模式
    一、db4o简介:
         简单的说,就是可以用对象的方式存储数据,比如java的集合对象,javabean,pojo对象等。
         开源,可以基于dboGPL协议免费使用,最新版本目前到了6.1版本(java)。官方网站有基于MySql数据库和其他存取方式性能比较的数据,性能十分不错。传闻应用十分广泛,从金融系统到战斗机控制系统都有使用。 db4o 为我们带来的是这样一种面向对象的查询方式:
    1.完全原生,目前查询语言能用Java和.NET表达
    2.100% 面向对象, 抛开对象-关系映射
    3.100% 的类型安全 查询语言能完全获取现代IDE的特性,
         比如语法检测、类型检测、重构,等等。  二、安装
    只要将jar文件加到classpath中即可。

    下载了之后,有PDF格式和HTML格式的指南文档。
      
      
    1. 三、入门实例:(运行以后将在当前目录中产生db.data数据库文件)

    2. import com.db4o.Db4o;
    3. import com.db4o.ObjectContainer;
    4. import com.db4o.ObjectSet;
    5. public class FirstStepsExample{   
    6.     public static void main(String[] args) {
    7.         
    8.               
    9.         ObjectContainer db=Db4o.openFile("db.data");
    10.         try {
    11.             storeFirstPilot(db);
    12.             storeSecondPilot(db);
    13.             retrieveAllPilots(db);
    14.             retrievePilotByName(db);
    15.             retrievePilotByExactPoints(db);
    16.             updatePilot(db);
    17.             deleteFirstPilotByName(db);
    18.             deleteSecondPilotByName(db);
    19.         }
    20.         finally {
    21.             db.close();
    22.         }
    23.     }
    24.    
    25.     public static void accessDb4o() {
    26.         ObjectContainer db=Db4o.openFile("db.data");
    27.         try {
    28.             // do something with db4o
    29.         }
    30.         finally {
    31.             db.close();
    32.         }
    33.     }
    34.    
    35.     public static void storeFirstPilot(ObjectContainer db) {
    36.         Pilot pilot1=new Pilot("Michael Schumacher",100);
    37.         db.set(pilot1);
    38.         System.out.println("Stored "+pilot1);
    39.     }
    40.     public static void storeSecondPilot(ObjectContainer db) {
    41.         Pilot pilot2=new Pilot("Rubens Barrichello",99);
    42.         db.set(pilot2);
    43.         System.out.println("Stored "+pilot2);
    44.     }
    45.     public static void retrieveAllPilotQBE(ObjectContainer db) {
    46.         Pilot proto=new Pilot(null,0);
    47.         ObjectSet result=db.get(proto);
    48.         listResult(result);
    49.     }
    50.    
    51.     public static void retrieveAllPilots(ObjectContainer db) {
    52.         ObjectSet result=db.get(Pilot.class);
    53.         listResult(result);
    54.     }
    55.     public static void retrievePilotByName(ObjectContainer db) {
    56.         Pilot proto=new Pilot("Michael Schumacher",0);
    57.         ObjectSet result=db.get(proto);
    58.         listResult(result);
    59.     }
    60.    
    61.     public static void retrievePilotByExactPoints(ObjectContainer db) {
    62.         Pilot proto=new Pilot(null,100);
    63.         ObjectSet result=db.get(proto);
    64.         listResult(result);
    65.     }
    66.     public static void updatePilot(ObjectContainer db) {
    67.         ObjectSet result=db.get(new Pilot("Michael Schumacher",0));
    68.         Pilot found=(Pilot)result.next();
    69.         found.addPoints(11);
    70.         db.set(found);
    71.         System.out.println("Added 11 points for "+found);
    72.         retrieveAllPilots(db);
    73.     }
    74.     public static void deleteFirstPilotByName(ObjectContainer db) {
    75.         ObjectSet result=db.get(new Pilot("Michael Schumacher",0));
    76.         Pilot found=(Pilot)result.next();
    77.         db.delete(found);
    78.         System.out.println("Deleted "+found);
    79.         retrieveAllPilots(db);
    80.     }
    81.     public static void deleteSecondPilotByName(ObjectContainer db) {
    82.         ObjectSet result=db.get(new Pilot("Rubens Barrichello",0));
    83.         Pilot found=(Pilot)result.next();
    84.         db.delete(found);
    85.         System.out.println("Deleted "+found);
    86.         retrieveAllPilots(db);
    87.     }
    88.    public static void listResult(ObjectSet result) {
    89.     System.out.println(result.size());
    90.     while(result.hasNext()) {
    91.         System.out.println(result.next());
    92.     }
    93.   }
    94. }
    95. public class Pilot {   
    96.     private String name;
    97.     private int points;  
    98.    
    99.     public Pilot(String name,int points) {
    100.         this.name=name;
    101.         this.points=points;
    102.     }
    103.         
    104.     public int getPoints() {
    105.         return points;
    106.     }
    107.    
    108.     public void addPoints(int points) {
    109.         this.points+=points;
    110.     }
    111.    
    112.     public String getName() {
    113.         return name;
    114.     }
    115.    
    116.     public String toString() {
    117.         return name+"/"+points;
    118.     }
    119. }
    复制代码

       
         
          运行结果: C:Test>java FirstStepsExample
    Stored Michael Schumacher/100
    Stored Rubens Barrichello/99
    2
    Michael Schumacher/100
    Rubens Barrichello/99
    1
    Michael Schumacher/100
    1
    Michael Schumacher/100
    Added 11 points for Michael Schumacher/111
    2
    Michael Schumacher/111
    Rubens Barrichello/99
    Deleted Michael Schumacher/111
    1
    Rubens Barrichello/99
    Deleted Rubens Barrichello/99
    0  
         
          
          
          

          
         
       
      


    源码下载:http://file.javaxxz.com/2014/10/2/141500375.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 17:45 , Processed in 0.396496 second(s), 52 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表