1.新建數(shù)據(jù)庫(表)
2.根據(jù)表要創(chuàng)建Java bean? ? 規(guī)則:類名與表名對應(yīng)? ? ? 類中的屬性與列名對應(yīng)
3.創(chuàng)建xxxMapping? 要實現(xiàn)EntityMapping接口? ? 然后要將xxxMapping放入到工廠(MappingFactory)中
4.創(chuàng)建DAO接口與實現(xiàn)? ? ? 接口中的方法主要就是對Bean的操作(添加、修改楼咳、刪除辽慕、查詢)
5.Service接口與實現(xiàn)? (處理事物)
6.創(chuàng)建View(視圖)界面? ? ? ? java.awt (基礎(chǔ))? ? ? ? javax.swing (增加)
常用的組件:Button按鈕? Checkbox復(fù)選框? TextFiled文本框? ? TextArea文本域? ? Menu (菜單)
awt中常用的容器:
1.Window 對象是一個沒有邊界和菜單欄的頂層窗口。窗口的默認(rèn)布局是 BorderLayout。
2.Frame 是帶有標(biāo)題和邊框的頂層窗口诬像。
3.Panel 是最簡單的容器類跪腹。應(yīng)用程序可以將其他組件放在面板提供的空間內(nèi)(相當(dāng)于一張白紙,是不能獨立顯示的开伏,一定要將Panel放到一個窗口中)
注意:這些組件一定要放到一個容器中才能被顯示
awt的布局方式:FlowLayout(流式布局):Panel的默認(rèn)布局? ? BorderLayout(邊界布局):Frame的默認(rèn)布局? ? GridLayout(網(wǎng)格布局)
調(diào)用什么方法來設(shè)置布局膀跌? void setLayout(LayoutManager mgr) 設(shè)置此容器的布局管理器。
注意:? 如何設(shè)置jdbc中的事物提交模式:
void setAutoCommit(boolean autoCommit)
? ? ? ? ? 將此連接的自動提交模式設(shè)置為給定狀態(tài)固灵。
? 方法說明:默認(rèn)情況下jdbc的事物是自動提交的捅伤,如果想要手動提交一定要將boolean autoCommit設(shè)置為false;
注意:在三層結(jié)構(gòu)中事物是在業(yè)務(wù)層來處理的!N撞!丛忆!
注意:工具類的說明:
? ? a.DBManager? 連接數(shù)據(jù)庫的工具類
? ? b.JdbcTemplate? 對數(shù)據(jù)庫操作的方法(添加、修改仍秤、刪除熄诡、查詢)
? ? c.datainfo.properties(配制文件)? 配制數(shù)據(jù)庫信息的屬性文件
? ? d.PropertyUtil? 對datainfo.properties文件讀取的工具類
? ? e.log4j.properties? 日志信息的屬性文件? ? 需要配合第三方庫使用(commons-logging-1.0.4.jar、log4j-1.2.16.jar)
注意:傳統(tǒng)的Jdbc的缺點是重復(fù)的代碼太多徒扶,所我們一定要利用Java中的設(shè)計模式來提高程序的靈活性以及可重用性粮彤。
public List<Object> query(String sql, EntityMapping mapping, Object...values){
while(rs.next()){
Person person = new Person();
person.setId(rs.getInt("id"));
list.add(person);
}
}
如果Sql:select * from person where id=?? 這個方法只能對Person進(jìn)行操作
如果Sql:select * from user where id=?以上方法就不適用了,我們要重新寫一個方法
public List<Object> query(String sql, EntityMapping mapping, Object...values){
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
list.add(user);
}
}
可以利用Java中的設(shè)計模式(單例、工廠)來解決以上的問題导坟,提高代碼的可重用性
如何將以下代碼從當(dāng)前類中分離出去屿良,提高程序的靈活性?
User user = new User();
user.setId(rs.getInt("id"));
Person person = new Person();
person.setId(rs.getInt("id"));
我們可以創(chuàng)建一個接口(EntityMapping)惫周,此接口中要聲明一個方法:可以根據(jù)傳入的ResultSet返回一個對象(Object)