1. 嵌入式方式
单个用户使用,Derby数据库和Java程序运行在同一个JVM中。
在这种情况下,用户几乎不直接操作数据库,因为它的启动和终止都是由程序来完成的,几乎不需要管理。
1.1 使用ij
进入C:\Oracle\Java\jdk1.7.0_02\db\bin目录,执行ij命令进入交互模式。
ij> CONNECT 'jdbc:derby:d:\MyJavaDb;create=true';
执行后,会在D盘创建一个MyJavaDb目录,这个就是你的数据库。
如果创建数据库时,希望设置用户名/密码:CONNECT 'jdbc:derby://localhost:1527/MyJavaDb;create=true;user=admin;password=welcome1';
如下图示:
然后就可以使用SQL语句创建表、向表中插入数据,查询表中数据等等。
ij> CREATE TABLE test_table(id int primary key, name varchar(20));
ij> INSERT INTO test_table VALUES(1,'China');
ij> SELECT * FROM test_table;
1.2 使用Java编程访问嵌入式Derby数据库
(1)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:javac -cp .;derby.jar;derbynet.jar TestDerby.java
(2)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:java -cp .;derby.jar;derbynet.jar TestDerby
TestDerby.java内容如下:
注意,这里使用的是EmbeddedDriver,即Derby数据库和Java程序运行在同一个JVM中,数据库的启动和停止都是由程序管理的,你并没有也不需要启动和停止Derby数据库。
执行后,会在D盘创建一个目录TEST_DB,并打印出:
>>> 1 Zhang
>>> 2 Wang
2. 服务器方式
多个用户使用,Derby数据库和Java程序运行在不同的JVM中。
在这种方式下,各个Java程序从不同的JVM上通过网络连接访问数据库。
2.1 首先要启动Derby数据库
进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行
java -cp .;derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl start
注意,Derby默认占用端口1527。
如果想改成其它端口,需要加参数-p:
java -cp .;derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl start -p 1537
要想停止数据库,执行
java -cp derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl shutdown
2.1 使用Java编程访问远程的Derby数据库
(1)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:javac -cp .;derby.jar;derbynet.jar;derbyclient.jar TestDerby2.java
(2)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:java -cp .;derby.jar;derbynet.jar;derbyclient.jar TestDerby2
TestDerby2.java内容如下:
注意,这里使用的是ClientDriver,表明访问的是远程的Derby数据库。
执行后,会在D盘创建一个目录TEST_DB2,并打印出
>>> 1 Zhang
>>> 2 Wang
单个用户使用,Derby数据库和Java程序运行在同一个JVM中。
在这种情况下,用户几乎不直接操作数据库,因为它的启动和终止都是由程序来完成的,几乎不需要管理。
1.1 使用ij
进入C:\Oracle\Java\jdk1.7.0_02\db\bin目录,执行ij命令进入交互模式。
ij> CONNECT 'jdbc:derby:d:\MyJavaDb;create=true';
执行后,会在D盘创建一个MyJavaDb目录,这个就是你的数据库。
如果创建数据库时,希望设置用户名/密码:CONNECT 'jdbc:derby://localhost:1527/MyJavaDb;create=true;user=admin;password=welcome1';
如下图示:
然后就可以使用SQL语句创建表、向表中插入数据,查询表中数据等等。
ij> CREATE TABLE test_table(id int primary key, name varchar(20));
ij> INSERT INTO test_table VALUES(1,'China');
ij> SELECT * FROM test_table;
1.2 使用Java编程访问嵌入式Derby数据库
(1)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:javac -cp .;derby.jar;derbynet.jar TestDerby.java
(2)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:java -cp .;derby.jar;derbynet.jar TestDerby
TestDerby.java内容如下:
import java.sql.*; public class TestDerby { public static void main(String[] args) throws Exception { Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:derby:D:/TEST_DB;create=true"); Statement st = conn.createStatement(); st.execute("CREATE TABLE test_table(ID INT NOT NULL,NAME VARCHAR(10) NOT NULL)"); st.executeUpdate("INSERT INTO test_table(ID,NAME) values (1,'Zhang')"); st.executeUpdate("INSERT INTO test_table(ID,NAME) values (2,'Wang')"); ResultSet rs = st.executeQuery("select * from test_table"); while (rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); System.out.println(">>> "+id+" "+name); } } }
注意,这里使用的是EmbeddedDriver,即Derby数据库和Java程序运行在同一个JVM中,数据库的启动和停止都是由程序管理的,你并没有也不需要启动和停止Derby数据库。
执行后,会在D盘创建一个目录TEST_DB,并打印出:
>>> 1 Zhang
>>> 2 Wang
2. 服务器方式
多个用户使用,Derby数据库和Java程序运行在不同的JVM中。
在这种方式下,各个Java程序从不同的JVM上通过网络连接访问数据库。
2.1 首先要启动Derby数据库
进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行
java -cp .;derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl start
注意,Derby默认占用端口1527。
如果想改成其它端口,需要加参数-p:
java -cp .;derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl start -p 1537
要想停止数据库,执行
java -cp derby.jar;derbynet.jar org.apache.derby.drda.NetworkServerControl shutdown
2.1 使用Java编程访问远程的Derby数据库
(1)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:javac -cp .;derby.jar;derbynet.jar;derbyclient.jar TestDerby2.java
(2)进入C:\Oracle\Java\jdk1.7.0_02\db\lib目录,执行:java -cp .;derby.jar;derbynet.jar;derbyclient.jar TestDerby2
TestDerby2.java内容如下:
import java.sql.*; public class TestDerby2 { public static void main(String[] args) throws Exception { Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/D:/TEST_DB2;create=true"); Statement st = conn.createStatement(); st.execute("CREATE TABLE test_table(ID INT NOT NULL,NAME VARCHAR(10) NOT NULL)"); st.executeUpdate("INSERT INTO test_table(ID,NAME) values (1,'Zhang')"); st.executeUpdate("INSERT INTO test_table(ID,NAME) values (2,'Wang')"); ResultSet rs = st.executeQuery("select * from test_table"); while (rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); System.out.println(">>> "+id+" "+name); } } }
注意,这里使用的是ClientDriver,表明访问的是远程的Derby数据库。
执行后,会在D盘创建一个目录TEST_DB2,并打印出
>>> 1 Zhang
>>> 2 Wang
没有评论:
发表评论