国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
學(xué)習(xí)Java6(六) ---嵌入式數(shù)據(jù)庫(kù) Derby
一.  Derby簡(jiǎn)介

    Derby
是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)。
    Derby是一個(gè)用java實(shí)現(xiàn)的數(shù)據(jù)庫(kù)。
    Derby是一個(gè)開(kāi)源的數(shù)據(jù)庫(kù)。
    Derby是一個(gè)嵌入式的數(shù)據(jù)庫(kù)。
    Derby是一個(gè)JDK6內(nèi)置的數(shù)據(jù)庫(kù)。

    1996年,一個(gè)叫做 Cloudscape, Inc 的新公司成立了,公司的目標(biāo)是構(gòu)建一個(gè)用 Java 語(yǔ)言編寫(xiě)的數(shù)據(jù)庫(kù)服務(wù)器。公司的第一個(gè)發(fā)行版在一年之后推出,后來(lái)產(chǎn)品的名稱(chēng)變成 Cloudscape。

1999年,Cloudscape, Inc. 被大型數(shù)據(jù)庫(kù)廠商 Informix Software, Inc. 收購(gòu)。

2001年, Informix Software 又被 IBM 收購(gòu),然后 IBM Cloudscape™ 數(shù)據(jù)庫(kù)系統(tǒng)在許多 IBM 的產(chǎn)品中被用作內(nèi)嵌的數(shù)據(jù)庫(kù)引擎。

2004年4月,IBM 把 Cloudscape 數(shù)據(jù)庫(kù)軟件贈(zèng)送給 Apache 軟件基金會(huì)(ASF),從此 Apache Derby 項(xiàng)目誕生了。在 Apache 中這個(gè)項(xiàng)目叫做 Derby,它是一個(gè)孵化器項(xiàng)目。開(kāi)發(fā)人員可以在 Apache 的許可下為 Derby 代碼作出貢獻(xiàn),或者下載 Derby 代碼。
 
二.Derby 在java6中的位置
   打開(kāi)JDK6的安裝目錄就會(huì)發(fā)現(xiàn)比JDK5的安裝目錄里多了一個(gè)叫DB的文件夾,
  目錄結(jié)構(gòu)
  ├─demo--例子
  │  ├─databases
  │  │  └─toursdb
  │  │      ├─log
  │  │      └─seg0
  │  └─programs
  │      ├─nserverdemo
  │      ├─simple
  │      ├─toursdb
  │      └─workingwithderby
  ├─frameworks--框架
  │  ├─embedded
  │  │  └─bin
  │  └─NetworkServer
  │      └─bin
  └─lib--類(lèi)庫(kù)
  使用該數(shù)據(jù)庫(kù)時(shí)會(huì)用到lib文件夾中的一些jar
 
三 .Derby使用的一個(gè)簡(jiǎn)單例子
  1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5 
 6 public class TestDerbyBaisc {
 7     public static void main(String[] args) {
 8         try {           
 9             Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();//加載驅(qū)動(dòng)
10             Connection conn = DriverManager.getConnection("dbc:derby:TESTDB;create=true");//連接數(shù)據(jù)庫(kù)
11             Statement st = conn.createStatement();
12             st.execute("create table USER_INFO (ID INT NOT NULL,NAME VARCHAR(10) NOT NULL)");//建表
13             st.executeUpdate("insert into USER_INFO(ID,NAME) values (1,‘hermit‘)");//插入數(shù)據(jù)
14             st.executeUpdate("insert into USER_INFO(ID,NAME) values (2,‘test‘)");//插入數(shù)據(jù)
15             ResultSet rs = st.executeQuery("select * from USER_INFO");//讀取剛插入的數(shù)據(jù)
16             while(rs.next()){
17                 int id = rs.getInt(1);
18                 String name = rs.getString(2);
19                 System.out.println("ID="+id);
20                 System.out.println("NAME="+name);
21             }
22         } catch(Exception e){
23             e.printStackTrace();
24         }
25     }
26 }
運(yùn)行以后輸出
ID=1
NAME=hermit
ID=2
NAME=test

在項(xiàng)目下會(huì)生成一個(gè)文件夾TESTDB
 
四 .Derby網(wǎng)絡(luò)版服務(wù)器端
 
  1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3 import java.io.PrintWriter;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.Statement;
 7 import org.apache.derby.drda.NetworkServerControl;
 8 
 9 public class TestDerbyServer {
10     public static void main(String[] args) {
11         try {
12             NetworkServerControl dbserver = new NetworkServerControl();//啟動(dòng)服務(wù)器
13             
14             PrintWriter pw = new PrintWriter(System.out);//獲取服務(wù)器輸出
15             dbserver.start(pw);
16             
17             Connection conn = DriverManager.getConnection("jdbc:derby:TESTDB;create=true");//本地連接數(shù)據(jù)庫(kù)
18             
19             Statement st = conn.createStatement();
20             st.execute("create table USER_INFO (ID INT NOT NULL,NAME VARCHAR(10) NOT NULL)");//建表
21             st.executeUpdate("insert into USER_INFO(ID,NAME) values (1,‘hermit‘)");//插入數(shù)據(jù)
22             st.executeUpdate("insert into USER_INFO(ID,NAME) values (2,‘test‘)");//插入數(shù)據(jù)
23             
24             /*
25              *等待用戶(hù)輸入,讓程序繼續(xù)運(yùn)行,不然程序會(huì)運(yùn)行結(jié)束,客戶(hù)端就連不上了 
26              */
27             BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
28             System.out.println("Press [Enter] to stop Server");
29             in.readLine();
30 
31         } catch (Exception ex) {
32             ex.printStackTrace();
33         }
34     }
35 }運(yùn)行輸出:
服務(wù)器準(zhǔn)備在端口 1527 上接受連接。
Press [Enter] to stop Server

再?gòu)?qiáng)調(diào)一下,in.readLine();很重要,不然,程序運(yùn)行完畢,服務(wù)器也就停了

五.Derby網(wǎng)絡(luò)版客戶(hù)端
 
  運(yùn)行這個(gè)客戶(hù)端之前要先運(yùn)行
學(xué)習(xí)Java6(六) 嵌入式數(shù)據(jù)庫(kù)Derby(4)網(wǎng)絡(luò)版服務(wù)端
中的服務(wù)端

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5 
 6 public class TestDerbyClient {
 7     public static void main(String[] args) {
 8         String URL = "jdbc:derby://127.0.0.1:1527/TESTDB;create=true";
 9         try {
10    
11             Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();//加載驅(qū)動(dòng)
12             Connection conn = DriverManager.getConnection(URL);//建立連接
13             
14             Statement st = conn.createStatement(); 
15             ResultSet rs = st.executeQuery("select * from USER_INFO");//讀取數(shù)據(jù)
16             while(rs.next()){
17                 int id = rs.getInt(1);
18                 String name = rs.getString(2);
19                 System.out.println("ID="+id);
20                 System.out.println("NAME="+name);
21             }
22             
23         } catch (Exception ex) {
24             ex.printStackTrace();
25         }
26     }
27 }
運(yùn)行輸出:
ID=1
NAME=hermit
ID=2
NAME=test
六. Derby 用myeclipse網(wǎng)絡(luò)方式連接Derby
 
  首先啟動(dòng)學(xué)習(xí)Java6(六) 嵌入式數(shù)據(jù)庫(kù)Derby(4)網(wǎng)絡(luò)版服務(wù)端一文中的服務(wù)端。
在打開(kāi)myeclipse的首選項(xiàng),找到




點(diǎn)擊“new...”。
如下圖所示配置:


打開(kāi)DB BROWSER視圖,建立連接,如下圖:

用戶(hù)名密碼任意,但是不能為空,奇怪啊。
完成。
打開(kāi)新建的連接,即可像一般數(shù)據(jù)庫(kù)一樣進(jìn)行操作了。
 
 
七. Derby用myeclipse本地方式連接Derby
 
  方式連Derby和網(wǎng)絡(luò)方式的配置有很大的區(qū)別:注意看下面兩個(gè)圖:
  方式:


本地方式,注意紅圈處的不同:


首次連接時(shí)會(huì)在c盤(pán)下面創(chuàng)建TESTDB目錄。如果不寫(xiě)絕對(duì)路徑,數(shù)據(jù)庫(kù)會(huì)被創(chuàng)建到eclipse的根目錄下面。
 
八 . Derby + Spring+hibernate的配置
 
1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 3 
 4 <beans>
 5 
 6 
 7     <bean id="dataSource"
 8         class="org.apache.commons.dbcp.BasicDataSource">
 9         <property name="driverClassName">
10             <value>org.apache.derby.jdbc.EmbeddedDriver</value>
11         </property>
12         <property name="url">
13             <value>jdbc:derby:c:/TESTDB;create=true</value>
14         </property>
15         <property name="username">
16             <value>test</value>
17         </property>
18         <property name="password">
19             <value>test</value>
20         </property>
21     </bean>
22     <bean id="sessionFactory"
23         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
24         <property name="dataSource">
25             <ref bean="dataSource" />
26         </property>
27         <property name="hibernateProperties">
28             <props>
29                 <prop key="hibernate.dialect">                    org.hibernate.dialect.DerbyDialect                </prop>
30             </props>
31         </property>
32         <property name="mappingResources">
33             <list>
34                 <value>UserInfo.hbm.xml</value></list>
35         </property></bean>
36     <bean id="UserInfoDAO" class="UserInfoDAO">
37         <property name="sessionFactory">
38             <ref bean="sessionFactory" />
39         </property>
40     </bean></beans>
UserInfo.java
 1 // default package
 2 
 3 
 4 
 5 /**
 6  * UserInfo generated by MyEclipse - Hibernate Tools
 7  */
 8 
 9 public class UserInfo  implements java.io.Serializable {
10 
11 
12     // Fields    
13 
14      private Integer id;
15      private String name;
16 
17 
18     // Constructors
19 
20     /** default constructor */
21     public UserInfo() {
22     }
23 
24     /** minimal constructor */
25     public UserInfo(Integer id) {
26         this.id = id;
27     }
28     
29     /** full constructor */
30     public UserInfo(Integer id, String name) {
31         this.id = id;
32         this.name = name;
33     }
34 
35    
36     // Property accessors
37 
38     public Integer getId() {
39         return this.id;
40     }
41     
42     public void setId(Integer id) {
43         this.id = id;
44     }
45 
46     public String getName() {
47         return this.name;
48     }
49     
50     public void setName(String name) {
51         this.name = name;
52     }
53    
54 
55 
56 
57 
58 
59 
60 
61 
62 }

UserInfo.hbm.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- 
 5     Mapping file autogenerated by MyEclipse - Hibernate Tools
 6 -->
 7 <hibernate-mapping>
 8     <class name="UserInfo" table="USER_INFO" schema="APP">
 9         <id name="id" type="java.lang.Integer">
10             <column name="ID" />
11             <generator class="assigned" />
12         </id>
13         <property name="name" type="java.lang.String">
14             <column name="NAME" length="10" />
15         </property>
16     </class>
17 </hibernate-mapping>
18 

UserInfoDAO.java
  1 // default package
  2 
  3 import java.util.List;
  4 import org.apache.commons.logging.Log;
  5 import org.apache.commons.logging.LogFactory;
  6 import org.hibernate.LockMode;
  7 import org.springframework.context.ApplicationContext;
  8 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  9 
 10 /**
 11  * Data access object (DAO) for domain model class UserInfo.
 12  * @see .UserInfo
 13  * @author MyEclipse - Hibernate Tools
 14  */
 15 public class UserInfoDAO extends HibernateDaoSupport {
 16 
 17     private static final Log log = LogFactory.getLog(UserInfoDAO.class);
 18 
 19     protected void initDao() {
 20         //do nothing
 21     }
 22     
 23     public void save(UserInfo transientInstance) {
 24         log.debug("saving UserInfo instance");
 25         try {
 26             getHibernateTemplate().save(transientInstance);
 27             log.debug("save successful");
 28         } catch (RuntimeException re) {
 29             log.error("save failed", re);
 30             throw re;
 31         }
 32     }
 33     
 34     public void delete(UserInfo persistentInstance) {
 35         log.debug("deleting UserInfo instance");
 36         try {
 37             getHibernateTemplate().delete(persistentInstance);
 38             log.debug("delete successful");
 39         } catch (RuntimeException re) {
 40             log.error("delete failed", re);
 41             throw re;
 42         }
 43     }
 44     
 45     public UserInfo findById( java.lang.Integer id) {
 46         log.debug("getting UserInfo instance with id: " + id);
 47         try {
 48             UserInfo instance = (UserInfo) getHibernateTemplate()
 49                     .get("UserInfo", id);
 50             return instance;
 51         } catch (RuntimeException re) {
 52             log.error("get failed", re);
 53             throw re;
 54         }
 55     }
 56     
 57     
 58     public List findByExample(UserInfo instance) {
 59         log.debug("finding UserInfo instance by example");
 60         try {
 61             List results = getHibernateTemplate().findByExample(instance);
 62             log.debug("find by example successful, result size: " + results.size());
 63             return results;
 64         } catch (RuntimeException re) {
 65             log.error("find by example failed", re);
 66             throw re;
 67         }
 68     }    
 69     
 70     public List findByProperty(String propertyName, Object value) {
 71       log.debug("finding UserInfo instance with property: " + propertyName
 72             + ", value: " + value);
 73       try {
 74          String queryString = "from UserInfo as model where model." 
 75                                  + propertyName + "= ?";
 76          return getHibernateTemplate().find(queryString, value);
 77       } catch (RuntimeException re) {
 78          log.error("find by property name failed", re);
 79          throw re;
 80       }
 81     }
 82 
 83     public UserInfo merge(UserInfo detachedInstance) {
 84         log.debug("merging UserInfo instance");
 85         try {
 86             UserInfo result = (UserInfo) getHibernateTemplate()
 87                     .merge(detachedInstance);
 88             log.debug("merge successful");
 89             return result;
 90         } catch (RuntimeException re) {
 91             log.error("merge failed", re);
 92             throw re;
 93         }
 94     }
 95 
 96     public void attachDirty(UserInfo instance) {
 97         log.debug("attaching dirty UserInfo instance");
 98         try {
 99             getHibernateTemplate().saveOrUpdate(instance);
100             log.debug("attach successful");
101         } catch (RuntimeException re) {
102             log.error("attach failed", re);
103             throw re;
104         }
105     }
106     
107     public void attachClean(UserInfo instance) {
108         log.debug("attaching clean UserInfo instance");
109         try {
110             getHibernateTemplate().lock(instance, LockMode.NONE);
111             log.debug("attach successful");
112         } catch (RuntimeException re) {
113             log.error("attach failed", re);
114             throw re;
115         }
116     }
117 
118     public static UserInfoDAO getFromApplicationContext(ApplicationContext ctx) {
119         return (UserInfoDAO) ctx.getBean("UserInfoDAO");
120     }
121 }
 
 
 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
java讀取excel文件
(轉(zhuǎn))hibernate常用API詳解
hibernate 自增 IDENTITY
Hibernate使用實(shí)例步驟
SSH實(shí)現(xiàn)的增刪改查實(shí)例
Struts+Spring+Hibernate整合入門(mén)詳解
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服