persistence.js是个不错异步的javascript ORM框架,最初是用于操作HTML5 WebSQL database,现在可以运行在node.js,RingoJS等服务端环境中.
persistence.jsis an asynchronous Javascript object-database mapper. It has database-independent abstractions and can therefore easily be ported to new databases. Originally the library was designed to be used in the browser, utilizing its HTML5 WebSQL database, since then it has grown into a library that can be used in essentially every Javascript environment, including server-side Javascript environments such as node.js andRingoJS.
关于persistence.js的使用我就不多说了,有兴趣的童鞋可以去参考下官方的文档,说明还蛮清楚的.其思想也类似于Hibernate,我们在Hibernate中要定义一个pojo,然后在hbm.xml文件进行关联;在persistence.js中我们也要定义一个schema,其实就是数据库一个映射,我们可以对数据库进行同步或者删除.今天要做的就是在node.js中使用它,用它来创建数据库表,删除数据库表.
首先要引入persistence.js并初始化连接
var persistence = require('persistencejs/persistence').persistence;
var persistenceStore = require('persistencejs/persistence.store.mysql');
// Database configuration
persistenceStore.config(persistence, 'localhost', 3306, 'nodejs_mysql', 'root', 'root');
var session=persistenceStore.getSession();
然后定义schema模型
//定义对象
var Person=persistence.define('person',{
name:'TEXT',
address:'TEXT'
});
var Order=persistence.define('order',{
name:'TEXT',
active:'BOOL',
date:'DATE'
});
Person.hasMany('orders',Order,'person');
由于一个Person可以有多个Order,所以我们用了一对多关联.
接下来,我们来通过schema生成数据库表.
function initDb(){
session.transaction(function(tx){
//同步sechma
session.schemaSync(tx,function(){
console.log('初始化数据库成功');
})
});
}
initDb();
数据库创建成功后,我们来删除数据库表.
function reset(){
session.transaction(function(tx){
//删除数据库
session.reset(tx,function(){
console.log('删除数据库成功');
session.close();
})
});
}
setTimeout(function(){
reset();
},2000);
这样创建数据库表,删除数据库表还是蛮方便,可以试一试哟!
浙公网安备 33010602011771号