- 浏览: 42393 次
- 性别:
- 来自: 苏州
最新评论
-
jijiajia19:
...
Nexus 2.0.5 私人服务器构建 -
senhui19:
非常感谢,收藏啦。
JAVA SWING 日期选择控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件) -
一碗单炒饭:
拿来用了,谢谢谢谢
JAVA SWING 日期选择控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件) -
神恰恰:
高手啊 厉害 现在抄了一份 正用着
JAVA SWING 日期选择控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件) -
lin714916927:
...
JAVA SWING 日期选择控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件)
自己封装的DB4O Template, 可很方便的进行对象保存,更新,级联更新及删除! 废话不多说, 自己看源码:
/**
* DB4OUtils.java
* com.dzg.ticket.util
*
* ver date author
* ──────────────────────────────────
* 2012-2-10 Administrator
*
* Copyright (c) 2012, TNT All Rights Reserved.
*/
package utils;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import com.db4o.Db4oEmbedded;
import com.db4o.ObjectContainer;
import com.db4o.ObjectSet;
import com.db4o.config.EmbeddedConfiguration;
import com.db4o.query.Predicate;
//import com.dzg.ticket.bo.Passenger;
//import com.dzg.ticket.bo.Ticket;
//import com.dzg.ticket.bo.User;
/**
* ClassName:DB4OUtils
* Copyright: copyright (c)2012
* @author Deng Zhiguang
* @Date 2012-2-10
* Email: dengzhiguang@gmail.com
* Modification History:
* Date Author Version Reason
* ------------------------------------------
*/
public class DB4OTemplate {
private final static String DB4O_FILE_PATH = getClassPath() + "/db.yap";
private static String getClassPath() {
URL url = DB4OTemplate.class.getResource("/");
String path = null;
try {
path = URLDecoder.decode(url.getPath(), "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
return path;
}
private static void cascadeClasses(EmbeddedConfiguration configuration, List<Class<?>> classList) {
for (Class<?> c : classList) {
configuration.common().objectClass(c).cascadeOnUpdate(true);
configuration.common().objectClass(c).cascadeOnDelete(true);
}
}
public static <T> List<T> queryByExample(T t) {
List<T> result = new ArrayList<T>();
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> oSet = db.queryByExample(t);
while (oSet.hasNext()) {
result.add(oSet.next());
}
return result;
} finally {
if (db != null)
db.close();
}
}
public static <T> List<T> query(Class<T> clazz) {
List<T> result = new ArrayList<T>();
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> oSet = db.query(clazz);
while (oSet.hasNext()) {
result.add(oSet.next());
}
return result;
} finally {
if (db != null)
db.close();
}
}
public static <T> List<T> query(Predicate<T> predicate) {
List<T> result = new ArrayList<T>();
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> oSet = db.query(predicate);
while (oSet.hasNext()) {
result.add(oSet.next());
}
return result;
} finally {
if (db != null)
db.close();
}
}
public static <T> boolean exists(Predicate<T> predicate) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> oSet = db.query(predicate);
if (oSet.hasNext()) {
return true;
}
} finally {
if (db != null)
db.close();
}
return false;
}
public static <T> void store(T t) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
db.store(t);
} finally {
if (db != null)
db.close();
}
}
/**
* @deprecated
* the same with store() above
*/
public static <T> void cascadeStore(T t, List<Class<?>> cascadeClassList) {
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
cascadeClasses(configuration, cascadeClassList);
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(configuration, DB4O_FILE_PATH);
db.store(t);
} finally {
if (db != null)
db.close();
}
}
public static <T> void delete(Class<T> clazz) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> oSet = db.query(clazz);
while (oSet.hasNext()) {
db.delete(oSet.next());
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void delete(T t) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.queryByExample(t);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void delete(Predicate<T> predicate) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.query(predicate);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void cascadeDelete(T t, List<Class<?>> cascadeClassList) {
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
cascadeClasses(configuration, cascadeClassList);
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(configuration, DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.queryByExample(t);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void cascadeDelete(Predicate<T> predicate, List<Class<?>> cascadeClassList) {
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
cascadeClasses(configuration, cascadeClassList);
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(configuration, DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.query(predicate);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void update(T example, T target) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.queryByExample(example);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
db.store(target);
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void update(Predicate<T> predicate, T target) {
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.query(predicate);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
db.store(target);
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void cascadeUpdate(T example, T target, List<Class<?>> cascadeClassList) {
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
cascadeClasses(configuration, cascadeClassList);
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(configuration, DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.queryByExample(example);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
db.store(target);
}
} finally {
if (db != null)
db.close();
}
}
public static <T> void cascadeUpdate(Predicate<T> predicate, T target, List<Class<?>> cascadeClassList) {
EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration();
cascadeClasses(configuration, cascadeClassList);
ObjectContainer db = null;
try {
db = Db4oEmbedded.openFile(configuration, DB4O_FILE_PATH);
ObjectSet<T> targetSet = db.query(predicate);
while (targetSet.hasNext()) {
db.delete(targetSet.next());
db.store(target);
}
} finally {
if (db != null)
db.close();
}
}
/*public static void main(String[] args) {
List<Class<?>> cascadeClassList = new ArrayList<Class<?>>();
cascadeClassList.add(User.class);
cascadeClassList.add(Ticket.class);
cascadeClassList.add(Passenger.class);
User u1 = createUser();
store(u1);
System.out.println("==========================stored");
printAll();
User u3 = createUser();
u3.setUserName("1111");
u3.getTickets().get(0).setFromStation("fromStation");
// update(u1, u3);
cascadeUpdate(u1, u3, cascadeClassList);
System.out.println("==========================updated");
printAll();
// delete(User.class);
// delete(Ticket.class);
// delete(Passenger.class);
cascadeDelete(u3, cascadeClassList);
System.out.println("==========================deleted");
printAll();
}
private static void printAll() {
printUsers();
printTickets();
printPassengers();
}
private static void printUsers() {
System.out.println("===Users===");
List<User> users = query(User.class);
for(User u:users){
System.out.println(u);
}
}
private static void printTickets() {
System.out.println("===Tickets===");
List<Ticket> tickets = query(Ticket.class);
for(Ticket t:tickets){
System.out.println(t);
}
}
private static void printPassengers() {
System.out.println("===Passengers===");
List<Passenger> passengers = query(Passenger.class);
for(Passenger p:passengers){
System.out.println(p);
}
}
private static User createUser() {
User u1 = new User();
Ticket t1 = new Ticket();
Passenger p1 = new Passenger();
u1.getTickets().add(t1);
t1.setPassenger(p1);
u1.setUserName("tom1");
u1.setPassword("123456");
t1.setFromStation("Suzhou");
t1.setToStation("Shanghai");
t1.setStartDate("2012-02-11");
t1.setStartTime("00:10");
p1.setName("tom1 deng");
p1.setIdNumber("3424000000000000");
p1.setPhone("13500000000");
return u1;
}*/
}
- DB4OTemplate.rar (1.7 KB)
- 下载次数: 10
发表评论
-
springmvc
2013-02-26 23:26 0... -
netty
2013-02-15 23:23 0netty -
base dao
2013-01-27 21:32 0使用的Spring是3.1版本,不是3.0版本。两者还是有区 ... -
attachments
2012-09-04 21:36 0attachments -
临时草稿
2012-08-06 16:59 0使用的Spring是3.1版本,不是3.0版本。两者还是有区 ... -
OCR
2012-07-22 23:24 22JAVA OCR -
Nexus 2.0.5 私人服务器构建
2012-06-07 11:43 42101. 首先第一步,我们需要下载nexus-2.0.5-b ... -
软件版本
2012-03-23 22:48 6612306终极购票助手:1.0 JAVA实现的文件监听器:1 ... -
JAVA实现的文件监听器
2012-02-18 11:02 1588本软件可对任何文件进行监听,具体功能如下: 1、支持 ... -
JAVA SWING 日期选择控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件)
2012-02-14 16:11 24428package com.dzg.ticket.util; ... -
JAVA SWING 日期控件(目前支持JLable和JTextField,若有需要可自行扩展其它控件)
2012-02-14 13:25 7import java.awt.BasicStroke; ...
相关推荐
DB4O面向对象数据库使用指南
1.介绍了面向对象数据库 db4o 的基本特性,并且与传统关系型数据库以及 OR 映射技术做了比较分析,读者可以体验到 db4o 的全新的面向对象存储的理念,并且给出了性能测试数据。 2.介绍了面向对象数据库 db4o 的安装...
### db4o面向对象数据库教程入门知识点解析 #### 一、db4o简介与特性 - **db4o**:db4o是一款专为Java、.NET和Mono平台设计的开源面向对象数据库系统。它提供了高效的数据存储和检索功能,支持多种数据类型,并且...
db4o作为一款强大的对象数据库,提供了许多面向对象编程所需的特性,简化了数据管理,并且具备高度的灵活性和可扩展性。通过`DrawTools2005`这样的示例程序,开发者可以深入理解如何将db4o集成到实际项目中,提升...
DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接将对象持久化到数据库中,无需进行额外的映射或者数据访问层(DAL)的开发。这个数据库系统设计的目标是简化对象关系映射(ORM)的过程,...
db4o 是一个开源的面向对象数据库,能够轻松地将 Java 对象持久化到数据库中。本文将详细介绍 db4o 的安装、启动、查询方式、对象持久化、数据库文件结构、主要包结构等知识点。 一、db4o 安装和启动 db4o 的安装...
Java数据库db4o,全称为“Database for Objects”,是一款开源的对象数据库系统,专门设计用于Java和.NET平台。它提供了一种直接在对象模型上进行数据操作的方式,无需传统的ORM(对象关系映射)层,简化了开发过程...
### db4o面向对象数据库知识点解析 #### 一、db4o简介与特点 db4o是一款完全面向对象的数据库管理系统,它以其简洁高效的特点而受到开发者的喜爱,尤其适用于初学者。作为一款轻量级的对象数据库,db4o支持直接...
**db4o 8.0 对象数据库** db4o(Database for Objects)是一种开源的对象数据库管理系统(Object-Relational Mapping, ORM),它允许开发者直接将Java对象持久化到数据库中,无需传统的SQL语句。这个数据库系统的...
DB4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者将Java或.NET平台上的对象直接存储到数据库中,而无需进行SQL映射。在本文中,我们将深入探讨如何利用DB4o将一个对象保存到文件中,然后进行...
**db4o(Database for Objects)** 是一个开源的对象数据库管理系统(Object-Relational Mapping,ORM),它允许开发者直接在Java或.NET平台上存储和检索Java对象或.NET对象,无需进行SQL查询或者映射过程。db4o的...
《db4o 权威指南》是一本深入探讨db4o这一开源面向对象数据库系统的专业书籍,对于Java开发者来说尤其有价值。db4o是Database for Objects的缩写,它允许开发者以自然、直观的方式存储和检索Java对象,无需编写SQL...
db4o将Java对象直接持久化到磁盘,通过对象的引用关系来处理数据,简化了开发过程,特别是对于面向对象的设计模式来说,可以更好地保持数据的一致性和完整性。 ### 2. db4o的API介绍 db4o提供了一套直观的API来...
db4o(Database for Objects)是一款开源的对象数据库系统,它允许开发者直接将Java或.NET对象存储到数据库中,无需进行ORM(对象关系映射)。db4o的目标是简化数据管理,提供更接近自然编程的方式,使开发过程更加...
db4o是一个专为Java和.NET开发者设计的开源、轻量级的纯面向对象数据库引擎,提供了一种简单易用的方式来实现对象持久化。这款数据库引擎已被验证具备优秀的性能,根据描述中的基准测试,db4o在与传统持久化方案的...
6. **可移植性**:DB4O是跨平台的,可以在多种操作系统和硬件上运行,包括Windows、Linux、Mac OS X等。 7. **源码开放**:DB4O是开源软件,其源代码可供开发者查阅和学习,这为自定义扩展和优化提供了可能。 8. *...
总的来说,db4o是一个面向对象的数据库解决方案,尤其适合那些希望减少数据库层复杂性、追求代码简洁性的Java开发者。通过深入了解和使用db4o-6.4,你可以掌握对象数据库的基本原理和实践,为你的项目提供一个高效、...