當前位置:首頁 » 編程語言 » dao封裝sql數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

dao封裝sql數據

發布時間: 2022-05-20 17:21:43

A. java中一張表必須有個對應的嗎

DAO 封裝 sql 語句,而不是表。
一個 DAO 方法應對應一個 SQL 語句。所以理論上一個表一個 DAO,所有對其操作都放在裡面。
DAO 並不是一個具體的類,所有封裝 SQL 語句的東西都可以視為 DAO,比如 MyBatis 的 Mapper,和 Spring 的 Repository。
多表連接的情況,DAO 方法返回什麼你就放在哪個類裡面。

B. service層執行層傳遞過來的sql語句會破壞三層結構嗎

DAO是底層與資料庫直接交互的部分,serivce是又對DAO進行了一次封裝。而service是暴露給action的部分。aciton裡面調用service,service調用DAO。這樣。

C. JAVA如何向SQL資料庫中插入記錄(封裝欄位,調用構造方法,詳細點),謝謝!

具體需要這個幾個類,資料庫連接類,實現類,service實現類,action類(struts框架),還有頁面

D. JAVA開發在後台DAO層查找語句時,用sql好還是hql好

當然用hql,hql將sql已經封裝成為對象了。如果你需要保存一個學生,你只需要save一個學生對象就行了。

而sql你需要操作一大堆!

www.cao055.com

E. 為什麼要把sql放在中來完成有什麼好處

不會暴露資料庫的結構,相對安全些,並且將sql語句單獨放在中,項目的結構也清晰

F. 如何寫一個類方法來實現java對mysql資料庫的增刪改查

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();
}

}

}
我只寫了查詢和刪除,添加、修改和刪除非常之像,這是因為查詢對資料庫沒有改動,而增刪改都對資料庫進行了修改,所以這三個非常像……呵呵,你自己看著辦吧

G. Dao層到底是做什麼的service和Dao層有什麼關系說得具體一些。

Dao層是和資料庫打交道的,Service層會封裝具體的業務。有點抽象..
e.g.
用戶管理系統
封裝了用戶的增刪改查。而業務上要求批量刪除用戶,Service就可以封裝出一個批量刪除用戶的功能,但是實現只是循環調用的單個刪除
@Trascational
public
void
batchDel(List<User>
ls){
for(int
i=0;i<ls.size();i++){
.del((User)ls.get(i));
}
}
看了上面的例子應該明白了吧,Service封裝具體的業務,只是封裝基本的資料庫元操作。這樣就可以做到盡可能的「輕」,而Service又避免了與具體資料庫的關聯。當系統要遷移到其他資料庫的時候,只需要實現一個相應的就可以了!

H. java用Dao訪問資料庫,如何執行sql語句

你說的DAO是 做的一層專門負責資料庫操作的邏輯層,具體你是hibernate,ibatis,jdbc你沒說,所以不便於回答。
用的hibernate的話 getSession.update(String sql,Object params);

I. 如何用Dao方式連接 SQL Server資料庫

你用的什麼語言啊?
這個是VC++的

*****你說的是MFC的資料庫訪問類——class CDaoDatabase,這個類確實有Create()和Open()兩個成員函數,不過前者的功能是新建一個資料庫文件,而且只能是ACCESS文件(*.mdb),只有Open()能夠連接一個現有的SQL資料庫文件。
*****
*****連接代碼樣例:

CDaoDatabase dbSQL(); //括弧必須有,因為它有一個引用參數,引用目標是class CDaoWorkspace的一個對象,這個參數默認是NULL

CString strDBPath("");//連接SQL時為空,連接ACCESS時為文件路徑

CString strDBConn("driver={SQL Server};server=MySqlServer; uid=MyUserName;pwd=MyPassword;database=你的SQL資料庫文件" );
//連接SQL時這樣設置,連接ACCESS時此參數為空

dbSQL.Open( strDBPath,
FALSE, FALSE,
strDBConn
);

*****
*****另外,如樓上所言,DAO最初就是為ACCESS設計的。數據源只是一個適配器,讓DAO能夠擴展其功能連接其它資料庫。建議改用ADO,ADO功能非常完善,而且簡單易用。ADO採用COM組件技術,它提供了一套完全與開發平台無關的類庫。也就是說可以不用MFC,可以在不同開發環境,多做開發語言中使用。

J. jsp,Action,service,,sql是怎麼傳值的

Dao層中主要是負責對資料庫的操作,比如(增刪改查),Service實際上是一個介面,是對Dao層的一次封裝,Action則是調用service介面的,jsp從頁面獲取數據給Action層進行處理,Action層將數據通過service層傳遞給Dao層,從而實行對資料庫的處理。