資料庫dao層
A. JAVA中Action層, Service層 ,modle層 和 Dao層的功能區分
首先這是現在最基本的分層方式,結合了SSH架構。modle層就是對應的資料庫表的實體類。Dao層是使用了Hibernate連接資料庫、操作資料庫(增刪改查)。Service層:引用對應的Dao資料庫操作,在這里可以編寫自己需要的代碼(比如簡單的判斷)。Action層:引用對應的Service層,在這里結合Struts的配置文件,跳轉到指定的頁面,當然也能接受頁面傳遞的請求數據,也可以做些計算處理。以上的Hibernate,Struts,都需要注入到Spring的配置文件中,Spring把這些聯系起來,成為一個整體。
B. java中層和service層的區別是什麼
層:層叫數據訪問層,全稱為data access object,屬於一種比較底層,比較基礎的操作,具體到對於某個表、某個實體的增刪改查
service層:service層叫服務層,被稱為服務,肯定是相比之下比較高層次的一層結構,相當於將幾種操作封裝起來。
至於為什麼service層要使用介面來定義有以下幾點好處:
在java中介面是多繼承的,而類是單繼承的,如果你需要一個類實現多個service,你用介面可以實現,用類定義service就沒那麼靈活
要提供不同的資料庫的服務時,我們只需要面對介面用不同的類實現即可,而不用重復地定義類
編程規范問題,介面化的編程為的就是將實現封裝起來,然調用者只關心介面不關心實現,也就是「高內聚,低耦合」的思想。
(2)資料庫層擴展閱讀:
Java Web,是用Java技術來解決相關web互聯網領域的技術總和。web包括:web伺服器和web客戶端兩部分。Java在客戶端的應用有java applet,不過使用得很少,Java在伺服器端的應用非常的豐富,比如Servlet,JSP和第三方框架等等。Java技術對Web領域的發展注入了強大的動力。
C. 一個項目中說系統分為表現層、控制層、邏輯層、DAO層和最終資料庫五層架構 這具體是什麼意思啊
1、表現層:主要功能是顯示數據和接受傳輸用戶的數據,可以在為網站的系統運行提供互動式操作界面,表現層的應用方式比較常見,例如Windows窗體和Web頁面。
2、控制層:將業務規則、數據訪問、合法性校驗等工作進行處理。通過COM/DCOM通訊與邏輯層建立連接。
3、邏輯層:將用戶的輸入信息進行甄別處理,分別保存。建立新的數據存儲方式,在存儲過程中對數據進行讀取,將「商業邏輯」描述代碼進行包含。
4、DAO層:主要是對非原始數據(資料庫或者文本文件等存放數據的形式)的操作層,對資料庫的操作,而不是數據,具體為業務邏輯層或控制層提供數據服務。
5、最終資料庫:是資料庫的主要操控系統,實現數據的增加、刪除、修改、查詢等操作。實際運行的過程中,最終資料庫沒有邏輯判斷能力,為了實現代碼編寫的嚴謹性,提高代碼閱讀程度,一般軟體開發人員會使用DAO層,保證數據處理功能。
(3)資料庫層擴展閱讀:
系統分為表現層、控制層、邏輯層、DAO層和最終資料庫五層架構的優點是:
1、開發人員可以只關注整個結構中的其中某一層。
2、可以很容易的用新的實現來替換原有層次的實現。
3、可以降低層與層之間的依賴。
4、有利於標准化。
5、利於各層邏輯的復用。
6、結構更加的明確。
7、在後期維護的時候,極大地降低了維護成本和維護時間。
8、避免了表示層直接訪問數據訪問層,表示層只和業務邏輯層有聯系,提高了數據安全性。
9、有利於系統的分散開發,每一個層可以由不同的人員來開發,只要遵循介面標准,利用相同的對象模型實體類就可以了,這樣就可以大大提高系統的開發速度。
10、方便系統的移植,如果要把一個C/S的系統變成B/S系統,只要修改三層架構的表示層就可以了。業務邏輯層和數據訪問層幾乎不用修改就可以輕松的把系統移植到網路上。
11、項目結構更清楚,分工更明確,有利於後期的維護和升級。
D. java中層怎麼用
你所說的base 是一個基類,以表名作為類名的類 這個類是實體類
一般MVC 架構就是 寫資料庫 service 寫 服務
E. java中層和service層的區別
首先解釋面上意思,service是業務層,是數據訪問層。
呵呵,這個問題我曾經也有過,記得以前剛學編程的時候,都是在service里直接調用,service裡面就new一個類對象,調用,其他有意義的事沒做,也不明白有這個有什麼用,參加工作久了以後就會知道,業務才是工作中的重中之重。
我們都知道,標准主流現在的編程方式都是採用MVC綜合設計模式,MVC本身不屬於設計模式的一種,它描述的是一種結構,最終目的達到解耦,解耦說的意思是你更改某一層代碼,不會影響我其他層代碼,如果你會像spring這樣的框架,你會了解面向介面編程,表示層調用控制層,控制層調用業務層,業務層調用數據訪問層。初期也許都是new對象去調用下一層,比如你在業務層new一個DAO類的對象,調用DAO類方法訪問資料庫,這樣寫是不對的,因為在業務層中是不應該含有具體對象,最多隻能有引用,如果有具體對象存在,就耦合了。當那個對象不存在,我還要修改業務的代碼,這不符合邏輯。好比主板上內存壞了,我換內存,沒必要連主板一起換。我不用知道內存是哪家生產,不用知道多大容量,只要是內存都可以插上這個介面使用。這就是MVC的意義。
接下來說你感覺service的意義,其實因為你現在做東西分層次不是那麼嚴格,在一個你們做東西業務本身也少,舉個最簡單的例子,你做一個分頁的功能,數據1000條,你20條在一個頁,你可以把這個功能寫成工具類封裝起來,然後在業務層里調用這個封裝的方法,這才是業務里真正幹得事,只要沒訪問資料庫的,都要在業務里寫。
再有不明白的追問,這是經驗問題,呵呵,其實以後你就會懂。只是剛開始寫的代碼都是有個請求,我就去資料庫取,業務幾乎沒有。
F. 一個項目中分為邏輯層、層、ui層、和實體層,資料庫的操作
DAO層,創建一個工廠類,在工廠裡面一次搞定資料庫的開關,初始化,事務等操作。
G. JSP開發中Dao層如何實現對資料庫操作
既然可以讀取部分,那麼鏈接資料庫沒問題。你可以先把sql語句在資料庫裡面執行以下看看效果
H. Oracle中的DAO層對資料庫的增刪改查,包括時間類怎麼處理,,,最好來個
package basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBC {
public void findAll() {
try {
// 獲得資料庫驅動
//由於長時間不寫,驅動名和URL都忘記了,不知道對不對,你應該知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
// 創建連接
Connection conn = DriverManager.getConnection(url, userName,
password);
// 新建發送sql語句的對象
Statement st = conn.createStatement();
// 執行sql
String sql = "select * from users";
ResultSet rs = st.executeQuery(sql);
// 處理結果
while(rs.next()){
//這個地方就是給你的封裝類屬性賦值
System.out.println("UserName:"+rs.getString(0));
}
// 關閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(){
try {
//步驟還是那六個步驟,前邊的兩步是一樣的
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url,userName,password);
//這里的發送sql語句的對象是PreparedStatement,成為預處理sql對象,因為按條件刪除是需要不定值的
String sql = "delete from users where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(0, 1);
int row = ps.executeUpdate();
if(row!=0){
System.out.println("刪除成功!");
}
// 關閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我只寫了查詢和刪除,添加、修改和刪除非常之像,這是因為查詢對資料庫沒有改動,而增刪改都對資料庫進行了修改,所以這三個非常像……呵呵,你自己看著辦吧
I. 如何將資料庫中的一張表與結合在一起
關於將資料庫中的一張表與結合在以前思路大體有兩種:
第一種:不使用框架,使用JDBC(Java DataBase Connectivity)java連接資料庫。
載入驅動:class.forNname(" ");
得到連接:Connection connection = DriverManager.getConnection(" ");
聲明sql:String sql = " ";
執行sql語句:connection.createStatement().executeUpdate(sql);
第二種:使用框架。
創建實體類:實體的屬性與資料庫欄位對應
創建映射文件:將資料庫欄位與實體屬性關聯
在spring框架中管引入映射文件,並配置事物
在Dao層直接用