Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,java1.6开始集成了derby数据库,位于jdk下面的db目录下.
1 | ?C:openSourcejdk1.8.0_162dblibderby.jar; |
1 | C:openSourcejdk1.8.0_162dbbin |
在Derby数据库的/bin目录中提供了几个脚本用于设置classpath,以简化你手工在classpath中添加jar包的麻烦:
注意:命令行中使用derby,无论是服务(使用服务先启动数据库
)还是文件的连接方式都要行执行 ij命令,进入derby数据库;
这种模式下,需要使用两个控制台窗口,一个用于启动Derby数据库服务端,另一个做为访问Derby数据库的客户端。
可以通过DERBY数据库/bin目录下的==startNetworkServer.bat==来启动Derby数据库服务端,只需要在==命令行中输入==:
==startNetworkServer.bat==
或者是在命令行中输入
1 java -jar derbyrun.jar server start;
数据库就启动了,启动成功会在控制台输出如下信息:
已使用基本服务器安全策略安装了安全管理程序。
Apache Derby Network Server - 10.4.1.3 - (648739) 已启动并且已准备好 2008-09-06
00:38:12.540 GMT 时在端口 1527 上接受连接
1 | connect 'jdbc:derby://localhost:1527/db_name'; |
user=root;password=root; 创建一个用户.
create=true 没有数据库的话,也创建一个
1 | connect 'jdbc:derby:db_name'; |
与服务端连接上后,就可以开始执行SQL脚本了,:
如创建一个表格
1 | - 然后插入记录: |
也可以执行查询:
1 | - 也可以通过run命令来执行sql文件: |
最后通过exit;来退出ij工具
java代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Db {
public static void main(String[] args) {
try {
// 创建实例
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
// 获得数据库连接
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/firstdb");
String sql = "select name from stu";
PreparedStatement ps = conn.prepareStatement(sql);
// 执行查询语句
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
这儿的db_name可以是相对路径也可以是绝对路径,shutdown=true;用户在使用derby的内嵌数据库的时候有责任关闭数据库
- 请将derby.jar加入项目的build path路径
1 | Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); |
关于数据库的操作我在这儿就不说了,有需要学习的网友可以自己百度一下
原文:https://www.cnblogs.com/lijianming180/p/12032701.html