Atitit. Derby的使用总结attilax
Atitit. Derby的使用总结attilax
1. Derby数据库的存储结构
D:\derby\ij_cmd_test_db\seg 哈面儿一瓦dat文件...
D:\derby\ij_cmd_test_db 的目录
2015/12/22 17:14 <DIR> .
2015/12/22 17:14 <DIR> ..
2015/12/22 17:14 38 db.lck
2015/12/22 16:38 <DIR> log
2015/12/22 16:42 <DIR> seg0
2015/12/22 16:38 869 service.properties
2015/12/22 17:14 <DIR> tmp
2 个文件 907 字节
2. Derby gui工具
要使用url模式。。简单的server info模式不行
jdbc:derby:D:\derby\ij_cmd_test_db
DbVisualizer 9.2.13
DbVisualizer是一个跨平台的数据库工具,支持各种关系数据库,它可以通过JDBC驱动同时和多个不同的数据库建立连接,对管理者和开发人员来说,它友好的界面可以带来很大的方便。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3. 代码读写derby
package aaaAtiDslParser;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* @author greatwqs
* @date 2011-8-12
*/
public class DerbyTest_File {
private final static String DB_URL = "jdbc:derby:D:\\derby\\ij_cmd_test_db;create=true";
private final static String DERBY_DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName(DERBY_DRIVER);
Properties properties = new Properties();
// properties.put("create", "false"); // 新建数据库
// properties.put("user", "APP"); // 用户名
// properties.put("password", "APP"); // 密码
// properties.put("retreiveMessagesFromServerOnGetMessage", "true");
conn = DriverManager.getConnection(DB_URL, properties);
Statement stat = conn.createStatement();
stat.execute("create table ijtest(id int primary key,txt varchar(20))");
stat.execute("insert into ijtest(id,txt) values(1,'aa') ");
ResultSet result = stat.executeQuery("SELECT id,txt FROM ijtest");
while (result.next()) {
System.out.println("序号 : " + result.getInt(1));
}
result.close();
stat.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 内嵌模式数据库操作用完之后需要关闭数据库,这里没有执行数据库名称则全部关闭.
try {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException e) {
e.getMessage();
}
}
System.out.println("---ff");
}
}
4. 与sqlite db4o的对比
SQLite 是不可替代的开发环境解决方案。但真的没有其他兼容性更好的选择了吗?好吧,仅举几个原因:MySQL的兼容性和支持哈希索引,还不止这些!
当我们寻找 SQLite 的替代方案时,有两个可选,分别是 H2 和 MySQL Embeded 版本。我关注的是可像 SQLite 一样方便使用,但又必须兼容 MySQL。
下面我们对三个数据库进行简单的比较:
比较项目 |
SQLite |
H2 database engine |
MySQL Embedded |
Footprint |
|||
授权协议 |
Dual: Modified MPL 1.1 / EPL 1.0 (commercial friendly) |
GPL 2.0 (only commercial friendly if not redistributed) |
|
自容器 |
✔ |
✔ |
✔ |
单文件 |
✔ |
✔ |
✖ |
无服务器 |
✔ |
✔ |
✖ |
服务器模式 |
✖ |
✔ |
✔ |
零配置 |
✔ |
✔ |
✔ |
事物处理 |
✔ |
✔ |
✔ |
索引 |
✔ (B-tree, R-tree, full-text) |
✔ (B-tree, tree, hash, full-text) |
✔ (B-tree, R-tree, hash, full-text) |
MySQL 兼容性 |
✖ |
✔ (but not 100%) |
✔ |
兼容其他数据库 |
✖ |
✔ MySQL, PostgreSQL, Oracle, MSSQL, DB2, HSQLDB and Derby |
✖ |
加密 |
✖ |
✔ |
✖ |
内存中数据库 |
✔ |
✔ |
✔ (MEMORY storage engine) |
5. 参考
轻量级数据库比较:SQLite、H2 和 MySQL Embedded_数据库技术_Linux公社-Linux系统门户网站.htm
轻量级数据库比较:SQLite、H2 和 MySQL Embedded_数据库技术_Linux公社-Linux系统门户网站.htm
几种常见的内嵌数据库 - leagoal的专栏 - 博客频道 - CSDN.NET.htm(detail啊。)
Derby通过JDBC操作数据库(两种) - greatwqs Where amazing happens ... - ITeye技术网站.htm