當前位置:首頁 » 數據倉庫 » java資料庫model
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java資料庫model

發布時間: 2022-11-26 17:25:18

❶ 在java項目開發中model包里的每個類都要有對應的資料庫表嗎

這個。。怎麼說呢?只是一個模式,不會對程序造成怎樣的影響。至於你說的模型層中對應的類,只是你從資料庫查出來的結果將它封裝成一個類,而結果可能是很多表共同生成的

❷ Java Web中的mapper,service,controller,model究竟分別是什麼作用

java web中mapper是對象持久化映射層,一般會繼承ibatis或者mybatis servive是一些業務邏輯的處理層,controller是控制層,相當於mvc的c層,model是數據模型層相當於mvc的m層。

❸ java裡面,model裡面的成員變數類型一定要和資料庫的欄位類型對應拿

你定義成double也沒問題啊,但如果資料庫中是double,model裡面是float就有問題,不過這倒沒什麼規定,關鍵是你要清楚,double變成float是要損失精度的。
原則上保證數據不會有損失就好。

❹ 請問java項目 里的DAO,model,service, IMPL 是什麼意思,以及有什麼關系

是SSH架構的工程嗎?代表了三層吧,model是實例,service提供各種方法,實現各種方法,impl指implement,即實現,service和都需要impl,內部的方法一般是實現與資料庫交互的,而model一般就是資料庫中表的實例

❺ java開發時為什麼要和service都是model層嗎

和service不是model層。學習java開發推薦千鋒教育。千鋒教育培訓業務分為大學生技能培訓和職後技能培訓,為學生的學習保駕護航。

是數據訪問層。DAO(Data Access Object) 數據訪問對象是第一個面向對象的介面。service是業務層,負責所有的業務邏輯處理。model屬於數據實體模型。和資料庫的數據欄位是基本對應的,model也可以增加一些資料庫沒有的虛擬欄位,幫助處理業務。這樣分層的好處是降低程序耦合度。

想要了解更多有關java開發的相關信息,推薦咨詢千鋒教育。千鋒教育成立教研學科中心,推出貼近企業需求的線下技能培訓課程。採用全程面授高品質、高體驗培養模式,學科大綱緊跟企業需求,擁有國內一體化教學管理及學員服務,在職業教育發展道路上不斷探索前行。

❻ java裡面,model裡面的成員變數類型一定要和資料庫的欄位類型對應拿

不對應,就不能做映射,取的時候,不能從DB裡面取。。。。。。。

❼ java操作資料庫

createStatement 這個不是報錯,只是這句可能會拋出異常,這種情況在java中是必須使用 try catch 捕捉的。 你只要把代碼塊用 try catch 包起來就可以了。

❽ Java里用tableModel接收從資料庫查詢出來的數據該怎麼做求詳解,最好可以教我一下怎麼實現

利用Java開發資料庫應用系統時,經常需要在用戶界面上顯示查詢結果。由於SUN公司提供的JDK1.x開發工具包不是可視化的集成開發環境(IDE),不能象Delphi、VB那樣方便地把查詢結果在DBGrid等表格中顯示出來。因此,只能靠自己編寫代碼來實現。
在實際應用中,我們可以利用Vector、JTable、AbstractTableModel等三個類較好地解決這一問題。以下,詳細介紹一下實現方法。

· 一、 類Vector、類JTable及類AbstractTableModel簡介:

1、 類Vector:
類Vector是Java的歷史集合類,隸屬於java.util包。它包裝了異構鏈表和數組雜合體,具有以下兩個特點:

* 向量是異構的,不要求每個元素的類型相同,向量中可以混合多種對象類型;
* 向量是數組雜合體,因為它們可以在增加元素時動態增大。

其異構性正好符合資料庫記錄中屬性類型不一的特點,而其動態性也正好符合資料庫查詢時,結果集記錄個數不定的特點。

類Vector定義如下:
public class Vector extends AbstractList
implements List , Cloneable , Serializable{…}

實現了向量成員的查找、新增、刪除等方法。如:add(Object obj)可方便地加入一個對象;get(int index)可方便地得到向量中的一個對象;remove(Object obj)。則可方便地刪除向量中一個對象。

· 2、 類JTable:

JTable組件是Swing組件中比較復雜的小件,隸屬於javax.swing包,它能以二維表的形式顯示數據。類JTable定義如下:
public class JTable extends JComponent
implements TableModelListener, Scrollable, TableColumnModelListener,
ListSelectionListener, CellEditorListener, Accessible{…}
類JTable在顯示數據時具有以下特點:

* 可定製性:可以定製數據的顯示方式和編輯狀態;
* 異構性:可以顯示不同類型的數據對象,甚至包括顏色、圖標等復雜對象;
* 簡便性:可以以預設方式輕松地建立起一個二維表。

其可定製性可滿足不同用戶和場合的要求,異構性也正好符合資料庫訪問結果集中屬性類型不一的特點。類JTable提供了極為豐富的二維表格操作方法,如設置編

輯狀態、顯示方式、選擇行列等,在此不一一贅述。
使用類JTable顯示數據之前,必須根據情況生成定製模型、單元繪制器或單元編輯器。類AbstractListModel用來定製用戶自己的數據模型,這個類在後面要介紹。

TableCellRenderer介面用來定製單元繪制器,TableCellEditor介面用來定製單元編輯器,這兩個介面主要用於顏色對象的處理上,在示例中沒有用到,不做過多說明。

· 3、 類AbstractTableModel:

類AbstractTableModel是一個抽象類,沒有完全實現,不能實例化,使用時必須在程序中實現方法。它隸屬於javax.swing.table 。類定義如下:
public abstract class AbstractTableModel extends Object
implements TableModel, Serializable{…}

類AbstractTableModel提供了TableModel介面中絕大多數方法的預設實現。TableModel介面定義了JTable 的基礎數據結構。用戶要生成自己的數據模型,本來可以

通過實現TableModel介面中所有方法來滿足要求,但管理聽眾表的功能對於所有數據模型是共同的,所以在javax.swing.table中又定義了類AbstractTableModel來

處理這個工作。它既管理聽眾表,又為生成TableModelEvents事件並委託給聽眾提供了便利。
要想生成一個具體的TableModel作為AbstractTableMode的子類,至少必須實現下面三個方法:

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

至此,我們可以建立一個簡單二維表(5×5),實現方法如下:
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 5; }
public int getRowCount() { return 5;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
· 二、 資料庫及其連接方法簡介:

示例採用Sybase資料庫系統,資料庫存放在資料庫伺服器中。路徑為:D:/WORKER,資料庫名為:worker.dbf。具有以下欄位:

欄位名
類型
Wno(職工號)
VARCHAR
Wname(職工名)
VARCHAR
Sex(性別)
VARCHAR
Birthday(出生日期)
DATE
Wage(工資)
FLOAT

要連接此資料庫,需使用java.sql包中的類DriverManager。此類是用於管理JDBC驅動程序的實用程序類。它提供了通過驅動程序取得連接、注冊,撤消驅動程序, 設置登記和資料庫訪問登錄超時等方法。具體連接方法如下:

第一步:定位、裝入和鏈接SybDriver類;
driver="com.sybase.jdbc.SybDriver";
SybDriver sybdriver=(SybDriver)Class.forName(driver).newInstance();
第二步:注冊SybDriver類;
DriverManager.registerDriver(sybdriver);
第三步:取得連接(SybConnection)對象引用。
user="sa";
password="";
url="jdbc:sybase:Tds:202.117.203.114:5000/WORKER";
SybConnection connection=(SybConnection)DriverManager.getConnection
(url,user,password);

建立完連接後,即可通過Statement介面進行資料庫的查詢與更改。
· 三、 實現方法:

限於篇幅,在此只給出核心代碼,包引入、界面處理、變數定義等部分不再介紹。
第一步:對象聲明。
AbstractTableModel tm;//聲明一個類AbstractTableModel對象
JTable jg_table;//聲明一個類JTable對象
Vector vect;//聲明一個向量對象
JScrollPane jsp;//聲明一個滾動杠對象
String title[]={"職工號","職工名","性別","出生日期","工資"};
//二維表列名

第二步:定製表格。

1、實現抽象類AbstractTableModel對象tm中的方法:
vect=new Vector();//實例化向量
tm=new AbstractTableModel(){
public int getColumnCount(){
return title.length;}//取得表格列數
public int getRowCount(){
return vect.size();}//取得表格行數
public Object getValueAt(int row,int column){
if(!vect.isEmpty())
return
((Vector)vect.elementAt(row)).elementAt(column);
else
return null;}//取得單元格中的屬性值
public String getColumnName(int column){
return title[column];}//設置表格列名
public void setValueAt(Object value,int row,int column){}
//數據模型不可編輯,該方法設置為空
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}//取得列所屬對象類
public boolean isCellEditable(int row,int column){
return false;}//設置單元格不可編輯,為預設實現
};

2、定製表格:

jg_table=new JTable(tm);//生成自己的數據模型
jg_table.setToolTipText("顯示全部查詢結果");//設置幫助提示
jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//設置表格調整尺寸模式
jg_table.setCellSelectionEnabled(false);//設置單元格選擇方式
jg_table.setShowVerticalLines(true);//設置是否顯示單元格間的分割線
jg_table.setShowHorizontalLines(true);
jsp=new JScrollPane(jg_table);//給表格加上滾動杠

第三步:顯示查詢結果。

1、 連接資料庫:第二部分已給出。
2、 資料庫查詢:
Statement stmt=connection.createStatement();
ResultSet rs=stmt.executeQuery("select * from worker");
3、 顯示查詢結果:
vect.removeAllElements();//初始化向量對象
tm.fireTableStructureChanged();//更新表格內容
while(rs.next()){
Vector rec_vector=new Vector();
//從結果集中取數據放入向量rec_vector中
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getString(3));
rec_vector.addElement(rs.getDate(4));
rec_vector.addElement(new Float(rs.getFloat(5)));
vect.addElement(rec_vector);//向量rec_vector加入向量vect中
}
tm.fireTableStructureChanged();//更新表格,顯示向量vect的內容。

❾ 請問java項目 里的DAO,model,service, IMPL 是什麼意思,以及有什麼關系

在一般工程中 基本上都會出現上述的字眼
首先 DAO 提供了應用程序與資料庫之間的操作規范 和操作 用於通常資料庫的增刪查改 一般如果使用框架 都是由框架自動生成,提高訪問效率和便於快速開發。hibernate的DAO中 提供了關於事物 數據讀取 修改 刪除 添加 這些邏輯 還依賴於下面提到的Model
Model 為了便於理解業務和代碼可讀 美觀 通常將資料庫表 作為對象封裝,對象封裝中提供屬性 一般操作DAO類的時候 傳入的是Model 通過 hibernate的映射文件 映射到資料庫欄位也就是通常說的 通過實體類操作資料庫
IMPL 以IMPL 結尾的類 一般是實現了某個或多個介面的類 這些類的介面 是定義了一些規范的類通常是數據訪問等等 在service 中 會通過spring的注入 注入這些介面來實現邏輯
service 一般在service的實現類 會出現在action中。這些service 提供了包含邏輯的數據訪問
舉個例子 在 項目中需要將查詢出來的所有數據的某個值加1 那麼 在service 中 就會做一次循環 從查詢出來的Model 集合中 將值取出來 +1
它們的協作關系如下
web頁面--->Action---->service---->interface---->IMPL---->DAO---->DATABASE

❿ 哪位大蛺能給我講講java中severlet、modol、server、、資料庫處理,這幾層之間的聯系啊

你好,一般的web應用結構分為三層,採用經典的MVC設計模式,在程序的目錄架構上有如下分層:資料庫<->model->->service。分析:
1、資料庫和model中的實體類是相互對應的,一個實體類,就對應這資料庫中的一張表。
2、是一個service和model聯系的橋梁,封裝了操作數據的具體實現,你可以在中使用jdbc,也可以使用hibernate。但是這些對service層都是透明的。
3、service層通過調用層,直接取得需要的數據或者要執行的操作,並且加入相應的業務邏輯,如檢查、判斷。
4、當一個應用為web應用時,就可以在servlet中調用service層的方法,來完成不同的功能。常見的增刪查改。
5、servlet處理完成後,就結果轉發給視圖層進行顯示。
有上面可以看出:1、2就是M層,3、4就是C層,jsp、html就是V層。
對於你的工廠模式,這個有分好幾種,工廠模式作為最簡單的一種設計模式,學習起來應該不難,你網路上搜搜,很多介紹了,這里就不獻丑了。