久久色播_色综合久久久久久久久久久_欧美.com_97中文在线_天堂在线资源库_久久成人视屏

okx

DAO通用CRUD方法

時間:2023-06-12|瀏覽:260

DAO和增刪改查通用方法

DAO:是指DataAccessObject,即訪問數據信息的類和接口。它包括了對數據的CRUD(Create、Retrival、Update、Delete),但不包含任何業務相關的信息。

它的作用是為了實現功能的模塊化,從而更易于代碼的維護和升級。

1.1 表和 JavaBean 1.2 DAO 接口

DepartmentDAO:

void addDepartment(Department department) throws Exception; void updateDepartment(Department department) throws Exception; void deleteById(String did) throws Exception; Department getById(String did) throws Exception; List getAll() throws Exception;

EmployeeDAO:

void addEmployee(Employee emp) throws Exception; void updateEmployee(Employee emp) throws Exception; void deleteById(String eid) throws Exception; Employee getById(String eid) throws Exception; List getAll() throws Exception; Long getCount() throws Exception; List getAll(int page, int pageSize) throws Exception; Double getMaxSalary() throws Exception; Map getAvgSalaryByDid() throws Exception;

1.3 DAO 實現類(1)原生版

DepartmentDAOImpl:

public class DepartmentDAOImpl implements DepartmentDAO { @Override public void addDepartment(Department department) throws Exception { Connection conn = JDBCUtils.getConnection(); String sql = "INSERT INTO t_department (did, dname, description) VALUES (NULL, ?, ?)"; PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, department.getName()); pst.setString(2, department.getDescription()); pst.executeUpdate(); JDBCUtils.closeQuietly(pst, conn); }

@Override public void updateDepartment(Department department) throws Exception { Connection conn = JDBCUtils.getConnection(); String sql = "UPDATE t_department SET dname = ?, description = ? WHERE did = ?"; PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, department.getName()); pst.setString(2, department.getDescription()); pst.setInt(3, department.getId()); pst.executeUpdate(); JDBCUtils.closeQuietly(pst, conn); }

@Override public void deleteById(String did) throws Exception { Connection conn = JDBCUtils.getConnection(); String sql = "DELETE FROM t_department WHERE did = ?"; PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, did); pst.executeUpdate(); JDBCUtils.closeQuietly(pst, conn); }

@Override public Department getById(String did) throws Exception { Connection conn = JDBCUtils.getConnection(); String sql = "SELECT did, dname, description FROM t_department WHERE did = ?"; PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, did); ResultSet rs = pst.executeQuery(); Department dept = null; if (rs.next()) { dept = new Department(); dept.setId(rs.getInt("did")); dept.setName(rs.getString("dname")); dept.setDescription(rs.getString("description")); } JDBCUtils.closeQuietly(rs, pst, conn); return dept; }

@Override public List getAll() throws Exception { Connection conn = JDBCUtils.getConnection(); String sql = "SELECT did, dname, description FROM t_department"; PreparedStatement pst = conn.prepareStatement(sql); ResultSet rs = pst.executeQuery(); ArrayList list = new ArrayList(); while (rs.next()) { Department dept = new Department(); dept.setId(rs.getInt("did")); dept.setName(rs.getString("dname")); dept.setDescription(rs.getString("description")); list.add(dept); } JDBCUtils.closeQuietly(rs, pst, conn); return list; } }

1.4 抽取 BasicDAO

BasicDAOImpl:

/** * 這個類的作用是:對DAOImpl再次抽象,把共同的部分再次抽取 */ import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.atguigu.utils.JDBCUtils;

// 泛型類 public abstract class BasicDAOImpl { private Class type;

@SuppressWarnings("all") protected BasicDAOImpl() { // 為什么要在構造器中寫,因為子類繼承BasicDAOImpl類一定會調用父類的構造器 Class clazz =

« 上一條| 下一條 »
區塊鏈交流群
數藏交流群

合作伙伴

周公解夢 黃金行情 寶寶起名 谷歌留痕代發 裝修裝飾網 趣玩幣 旅游資訊網 幣圈論壇 幣圈ICO官網 兼職信息網 談股票 幣圈官網 谷歌seo網站優化 元宇宙Web 美白沒斑啦 媽媽知道 谷歌留痕代發Google留痕技術 培訓資訊網 借春秋財經 愛網站 非小號行情 減肥瘦身吧 玩合約 玩票票財經 幣圈交流群 百科書庫 代特幣圈 聚幣網 茶百科 天天財富 金色幣圈 今日黃金 借春秋 皮卡丘資訊 谷歌留痕 去玩唄SPA 百悅米 秒懂域名
在區塊鏈世界中,智能合約不僅是代碼的信任,更是商業的革命。通過了解其在供應鏈、版權保護等領域的應用,您將真正體驗到智能合約的無限可能性
區塊鏈世界GxPiKaQiu.com ?2020-2024版權所有 桂ICP備16002597號-2
主站蜘蛛池模板: av在线免费不卡 | 国产一区二区三区久久久久久久久 | 成人久久久精品乱码一区二区三区 | 九色av| 亚洲一区二区成人 | 亚洲1234区 | 国产精品国产亚洲精品看不卡15 | 91视频在线看 | 精品无人乱码一区二区三区 | 日韩成人免费电影 | 中文字幕在线观看第一页 | 国产精品久久久久久久久久久久久 | 91精品啪在线观看国产手机 | 91精品国产综合久久小美女 | 在线观看精品一区 | 91久久精品一区二区别 | 久久机 | 96看片 | 99精品视频免费在线观看 | 99精品国产热久久91蜜凸 | 国产全黄a一级毛片91 | 日韩免费在线观看视频 | 国产高清在线精品 | 国产麻豆一区二区三区在线观看 | 日韩精品无码一区二区三区 | 亚洲丁香社区久久丝袜综合网 | 婷婷久久五月天 | 一区二区在线免费 | 国产精品高清一区二区 | 精品三级 | 国产激情一区二区三区在线观看 | 久久久久国 | 精品在线一区二区 | 久久精视频 | 日韩电影av | 久久久久久午夜 | 自拍第二页 | 久久久综合色 | 日韩视频一级 | av在线免费网站 | 羞羞视频在线观看免费视频 |