基本上在Oracle上,不像SQL Server或DB 2有Identity的功能
沒有支援Auto Increment的功能,不過,這個功能真的還蠻常用的
不過其實還有有其它的技巧可以達成這件事的,比如使用下面參考資料的Trigger,不過,我個人比較喜歡單純一點的做法,在建立Table後,再建立Sequence,而在Insert的時候再使用Sequence.NEXTVAL取值的方式
CREATE TABLE TableName
(
Column1 NUMBER NOT NULL,
Column2 VARCHAR2(11) NOT NULL,
CONSTRAINT TableName_PKEY PRIMARY KEY(Column1)
);
CREATE SEQUENCE TableName_SEQ;
INSERT INTO TableName (Column1, Column2)
VALUES(TableName_SEQ.NEXTVAL, 'Column2Value');
參考資料:
https://oracle-base.com/articles/misc/autonumber-and-identity
2015年10月30日 星期五
2015年10月27日 星期二
Tomcat JNDI設定
之前工作主要是用Spring的方式來設定資料庫,將連線的相關資訊另外寫到參數檔中,現在因為工作需要,所以需要設定一下JNDI,之前在用JBoss的時候,大概就有用過了,只是換到Tomcat上,還是要找一下資料來設定,其實細節大概看一下,下面的參考資料就知道怎麼用了,至於要怎麼做,就看環境和需求來取捨吧。
只是想說,不管是用Spring設定,或是AP Server設定,各有優缺點,畢竟Spring的設定方式也是蠻簡單的就是了,但設定在AP Server上,可以將資料庫連線的細節交給DB,實務上也不需要分成開發環境或是線上環境的連線設定檔了,當然,其實也可以說只是把設定檔移至AP Server上就是了 冏。
其實還有不少東西可以丟給AP Server來處理,比如log或是MQ,不過就我個人觀點,不管是用Spring或是AP Server的方式,工作loading都不會減輕丫!只是單純的將業務邏輯無關的部分從程式中抽離就是了。
參考資料:
http://fanli7.net/a/fuwuqiruanjian/Tomcat/20120701/179189.html
https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
只是想說,不管是用Spring設定,或是AP Server設定,各有優缺點,畢竟Spring的設定方式也是蠻簡單的就是了,但設定在AP Server上,可以將資料庫連線的細節交給DB,實務上也不需要分成開發環境或是線上環境的連線設定檔了,當然,其實也可以說只是把設定檔移至AP Server上就是了 冏。
其實還有不少東西可以丟給AP Server來處理,比如log或是MQ,不過就我個人觀點,不管是用Spring或是AP Server的方式,工作loading都不會減輕丫!只是單純的將業務邏輯無關的部分從程式中抽離就是了。
參考資料:
http://fanli7.net/a/fuwuqiruanjian/Tomcat/20120701/179189.html
https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
2015年10月26日 星期一
Package naming
package主要的目的是避免相同名稱的Class發生衝突,因此可以避免開發上麻煩
不過,基本上大部分的人都是重視類別、方法、變數上的命名,不過也是因為套件的命名
其實也蠻少會做什麼特別的變動
基本上,我以前也是亂命名套件的名稱,比如tw.bill.xxx
但,現在覺得tw的意思不大,如果是公司的話應該用com,組織的話就org,個人的話…
有想到pri,但如果是要推個人做的產品的話,目前還沒有想到好的單字,可能就還是先用pri吧,而第二個單字,一般就是公司名,或是省略,直接接產品名
再來呢,就會區分功能區塊了,而功能區塊下,
又會根據其特性,再進行細分,基本上就是這樣啦
另外,至於interface和實作是否要分開,個人會比較覺得分開會比較好,而實作再跟據其對應的對像進行package的分類,不過,這也只是我比較常遇到的清況,
也可以根據功能進行package區分就好,然後Interface和實作可以放在一起,看那種方式最適合實際情況吧
另一個情況要思考的是,關於繼承關系的package分類,這個可以參考一下java api的分類方式,可以看以我個人最常用的ArrayList和其父介面Collection,
嗯…都放在同一個package中,或許這是一個最簡單的作法
思考過多,反而會造成使用上的困難,但這是對外公開的介面,實際上或許package內部,也隱藏著不為人知的祕密吧XD
關於溝通
其實,這篇沒什麼內容,可能比較適合po在plurk之類的
主要是想說關於溝通的一些想法
之前聽過一個說法是說,人其實對於對方說的不能百分之百完全了解
忘記是50%還是多少百分比了
只是,對某些人聽了某些問題,說我懂了
但問他,他也說不出個什麼毛來
也有的人,可以馬上嘴出一個長篇大論,但狗屁不通
有的人,明明聽的時候,明明就在睡覺,
但問他,又可以說的頭頭是道,可能比較講者說的還好…
或許,在底層有些共同的道理存在吧…
只是想說,一知半解是很可怕的一件事情
但對某些人愛面子的人來說,說不知道可能是很難的一件事吧
不過,學著試著去表達自已的想法,就算錯了,也沒關係
也比裝著自已很懂的樣子,但說不出個毛來的好…
主要是想說關於溝通的一些想法
之前聽過一個說法是說,人其實對於對方說的不能百分之百完全了解
忘記是50%還是多少百分比了
只是,對某些人聽了某些問題,說我懂了
但問他,他也說不出個什麼毛來
也有的人,可以馬上嘴出一個長篇大論,但狗屁不通
有的人,明明聽的時候,明明就在睡覺,
但問他,又可以說的頭頭是道,可能比較講者說的還好…
或許,在底層有些共同的道理存在吧…
只是想說,一知半解是很可怕的一件事情
但對某些人愛面子的人來說,說不知道可能是很難的一件事吧
不過,學著試著去表達自已的想法,就算錯了,也沒關係
也比裝著自已很懂的樣子,但說不出個毛來的好…
2015年10月2日 星期五
2015年8月4日 星期二
Maven study
Gossip
I don't like Maven indeed. Xml configuration method is more complex for now. But, my most work still need Maven. The principle is same as other dependency tools. So, let us still work on it for now. If you don't have any constrain, you can learn Gradle which is a modern dependency tool. Otherwise, I also don't like Eclipse, but I still work on it. Intellij IDEA is also good choice, but it is not free. You think you need to improve your production of coding, then buy it. However, I still need Eclipse for my working tool, so it is not necessary to learn two IDA as same time.
The reason why I return to study Maven is Spring 4. Spring 4 use Maven to set up Spring Boot or other Spring stuff. So, I need to understand Maven in some kind of level.
Resoure
Official Maven web site on Apache
Tutorial
2015年7月9日 星期四
Create a sample project(3) - WebService Choice
So, should I choice a more efficient web service framework to handle backend server? I think the answer is YES! Jersey is most popular Restful web service framework, and has high performance. I have thought about using SpringMVC, but when I see this experiment. I decide change to Jersey.
https://github.com/jhipster/generator-jhipster/issues/814
The performance is bothered me for a long time. There is a solution appear called Netty. Netty is a network communication framework. It supports event-driven, asynchronise , non-blocking IO feathers.
Netty article
http://ifeve.com/netty1/
But, do we need to give up SpringMVC? Maybe yes or not, because SpringMVC is more suitable for small scale or inside website. Anyway, the last example project have add and query function. You can implement delete and update functions by your own.
Next, we should change our webservice framework to Jersey.
訂閱:
文章 (Atom)
