﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-叮当小马的JavaBlog-文章分类-db</title><link>http://www.blogjava.net/dingdangxiaoma/category/30707.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 10 Apr 2008 15:21:16 GMT</lastBuildDate><pubDate>Thu, 10 Apr 2008 15:21:16 GMT</pubDate><ttl>60</ttl><item><title>derby 例子(转载)</title><link>http://www.blogjava.net/dingdangxiaoma/articles/191886.html</link><dc:creator>叮当小马</dc:creator><author>叮当小马</author><pubDate>Thu, 10 Apr 2008 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/dingdangxiaoma/articles/191886.html</guid><wfw:comment>http://www.blogjava.net/dingdangxiaoma/comments/191886.html</wfw:comment><comments>http://www.blogjava.net/dingdangxiaoma/articles/191886.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dingdangxiaoma/comments/commentRss/191886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dingdangxiaoma/services/trackbacks/191886.html</trackback:ping><description><![CDATA[<span style="color: red;">2008年4月10日&nbsp; edited by dingdangxiaoma <br />
转载别人的写的例子：</span>http://blog.csdn.net/Chinajash/archive/2007/01/08/1477568.aspx<br />
<p>Derby并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK6.0里面带的这个Derby的版
本是10.2.1.7,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个
JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上.值得注意的是JDK6里面的这个Derby支
持JDK6的新特性JDBC 4.0规范(<a href="http://jcp.org/en/jsr/detail?id=221">JSR 221</a>),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行.安装完JDK6.0后,Derby会被安装到<font color="#0000ff">&lt;JDK6_HOME&gt;/db</font>下面,在<font color="#0000ff">&lt;JDK6_HOME&gt;/db/demo/programs</font>下面还有一些示例程序,演示了如何启动,连接Derby数据库以及JDBC API的使用.下面分两种情况演示一下如何用代码操作Derby数据库,一种是嵌入式数据库,一种是网络数据库.</p>
<p>一.嵌入式数据库</p>
package db;<br />
<br />
import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.ResultSet;<br />
import java.sql.Statement;<br />
<br />
public class EmbeddedDerbyTester {<br />
&nbsp;&nbsp; &nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String driver = "org.apache.derby.jdbc.EmbeddedDriver";// 在derby.jar里面<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String dbName = "EmbeddedDB";<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String dbURL = "jdbc:derby:" + dbName + ";create=true";// create=true表示当数据库不存在时就创建它<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Class.forName(driver);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Connection conn = DriverManager.getConnection(dbURL);// 启动嵌入式数据库<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Statement st = conn.createStatement();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//&nbsp;&nbsp; &nbsp;st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");// 创建foo表<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;st.executeUpdate("insert into foo(FOOID,FOONAME) values (2,'chinajash2')");// 插入一条数据<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ResultSet rs = st.executeQuery("select * from foo");// 读取刚插入的数据<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while (rs.next()) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int id = rs.getInt(1);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String name = rs.getString(2);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("id=" + id + ";name=" + name);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;}<br />
}<br />
二.网络数据库<br />
package db;<br />
<br />
import java.io.PrintWriter;<br />
import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.ResultSet;<br />
import java.sql.Statement;<br />
<br />
import org.apache.derby.drda.NetworkServerControl;<br />
<br />
public class NetworkServerDerbyTester {<br />
&nbsp;&nbsp; &nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String driver = "org.apache.derby.jdbc.ClientDriver";// 在derbyclient.jar里面<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String dbName = "NetworkDB";<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String connectionURL = "jdbc:derby://localhost:1527/" + dbName<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;+ ";create=true";<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;/*<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * 创建Derby网络服务器,默认端口是1527,也可以通过运行<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * &lt;Derby_Home&gt;"frameworks"NetworkServer"bin"startNetworkServer.bat<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; * 来创建并启动Derby网络服务器,如果是Unix,用startNetworkServer.ksh<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; */<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;NetworkServerControl derbyServer = new NetworkServerControl();// NetworkServerControl类在derbynet.jar里面<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;PrintWriter pw = new PrintWriter(System.out);// 用系统输出作为Derby数据库的输出<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;derbyServer.start(pw);// 启动Derby服务器<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Class.forName(driver);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Connection conn = DriverManager.getConnection(connectionURL);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// do something<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Statement st = conn.createStatement();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//st.execute("create table foo (FOOID INT NOT NULL,FOONAME VARCHAR(30) NOT NULL)");// 创建foo表<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;st.executeUpdate("insert into foo(FOOID,FOONAME) values (2,'chinajash2')");// 插入一条数据<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ResultSet rs = st.executeQuery("select * from foo");// 读取刚插入的数据<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while (rs.next()) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int id = rs.getInt(1);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String name = rs.getString(2);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println("id=" + id + ";name=" + name);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;derbyServer.shutdown();// 关闭Derby服务器<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (Exception ex) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ex.printStackTrace();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;}<br />
}<br />
<span style="color: red;">例子都是一样子的，稍有改动。</span><br />
<img src ="http://www.blogjava.net/dingdangxiaoma/aggbug/191886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dingdangxiaoma/" target="_blank">叮当小马</a> 2008-04-10 15:48 <a href="http://www.blogjava.net/dingdangxiaoma/articles/191886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>derby 数据库 入门</title><link>http://www.blogjava.net/dingdangxiaoma/articles/191811.html</link><dc:creator>叮当小马</dc:creator><author>叮当小马</author><pubDate>Thu, 10 Apr 2008 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/dingdangxiaoma/articles/191811.html</guid><wfw:comment>http://www.blogjava.net/dingdangxiaoma/comments/191811.html</wfw:comment><comments>http://www.blogjava.net/dingdangxiaoma/articles/191811.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dingdangxiaoma/comments/commentRss/191811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dingdangxiaoma/services/trackbacks/191811.html</trackback:ping><description><![CDATA[derby 数据库是小型的。纯java数据库，平台无关。（网上有很多这方面的资料）<br />
deryb 由ibm 捐给apache 组织 ，现在为apache 旗下的db下的子项目。<br />
在google上搜索一下，关于这方面的资料，也还真不少的呢。ibm developerworks 下有不少内容。但是东西都太老了些，<br />
因此就从官方上找点资料，看一下。<br />
<h1><span style="font-size: 14pt;"><span style="font-size: 12pt;">Self-study tutorial for users new to Derby</span></span><br />
<span style="font-size: 10pt;"><span style="font-size: 12pt;">
http://db.apache.org/derby/docs/dev/getstart/cgstutorialintro.html</span></span></h1>
一步一步做下来，一定会有收获的。里面有四个activate,有具体的步骤。<br />
其中最后总结的不错，不过由于时间问题，就没有翻译，如果谁有兴趣的话，可以翻译一下。<br />
derby 数据库，既可以做嵌入式的也可以做网络式的。<br />
嵌入式并不是意味着程序只能由一个用户来用，网络式的就是现在大家都使用的sql server 2000。<br />
<br />
<img src ="http://www.blogjava.net/dingdangxiaoma/aggbug/191811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dingdangxiaoma/" target="_blank">叮当小马</a> 2008-04-10 11:34 <a href="http://www.blogjava.net/dingdangxiaoma/articles/191811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>