麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

dao設計用戶登錄系統 總結 strus2+hibernate(1)

2019-11-14 09:18:35
字體:
來源:轉載
供稿:網友

首先建立表t_user 然后利用工具自動生成實體類middlegen build file

添加hibernate的jar包,建立HiberantesessionFactory類,里面的靜態方法可以幫我們獲取鏈接,可以直接讓myeclipse生成

應該知道,在真正的開發里面,要么是從表直接映射出實體類,要么從實體類生成表,不會分別設計表和類然后再去映射,那樣浪費時間 我的表很簡單,只有三個字段 id name passwd

在生成的時候 id指定為native 自動遞增 只不過生成的實體類名無法修改,只能是TUser 我們把實體類生成在com.model.vo包下

好了,下面來配置 struts2+hibernate環境,直接把struts2的jar文件復制到lib目錄下,就會自動生成web app庫,接著配置web.xml,在這之前,比較好的習慣是檢查一下struts2.xml的環境是否配置成功,在struts.xml里面配置一個hello action ,不做任何處理,看看能否成功訪問,我之前就是忘記配置web.xml了,因為以前都是直接用myeclipse的內置的struts2功能,他會自動幫你配置好web.xml,所以我都快忘記了要配置web.xml了,不要犯低級錯誤。。

下面開始建立dao層 先看看有哪些包 這里寫圖片描述

這里是dao的接口定義

package com.model.dao;import com.model.vo.TUser;public interface IUserDAO { public void save(TUser u); public void delete(TUser u); public void update(TUser u); public TUser find(TUser u);}

這是dao的實現層,在測試的時候出現過一個錯誤,就是Transaction not successfully start ,原來是把s.beginTransaction()寫成了 s.getTransaction(),還有別忘記添加數據庫驅動了

@Override public void save(TUser u) { // TODO Auto-generated method stub //jdbc hiberante mybatis Session s = HibernateSessionFactory.getSession(); Transaction t = s.beginTransaction(); s.save(u); t.commit(); // s.flush(); s.close(); }

這個數據庫連接對象session,一開始有2個想法,第一個是放在類的成員變量里面,但是考慮到每次執行方法都要關閉數據庫連接,所以索性在每個方法里面定義連接對象算了

下面是服務層,也可以叫做代理層

PRivate IUserDAO dao = null; public UserService() {//提供一個注入dao的方法 // TODO Auto-generated constructor stub this.dao = new UserDAOImpl(); } @Override public void save(TUser u) { // TODO Auto-generated method stub dao.save(u); }

再次建立一個ServiceFactory類,降低代碼耦合度

package com.model.service;import com.model.dao.IUserDAO;public class ServiceFactory { public static IUserDAO getInstance(){ return new UserService(); }}

dao層依靠hibernate框架很容易就實現了,接下來我們測試一下

package com.test;import static org.junit.Assert.*;import org.junit.Test;import com.model.dao.*;import com.model.vo.*;public class TestDAO { @Test public void test() { TUser a = new TUser(); a.setId(1); a.setName("huang"); a.setPasswd("sdf"); UserDAOImpl d = new UserDAOImpl(); d.save(a); }}

DAO層沒有問題再進行action的開發,這叫做步步為營,確保自己當前的代碼都是沒有問題的,再進行下一步的開發,心里比較有底比較好。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜 | 中文字幕观看 | 色婷婷久久一区二区 | 日本中文字幕久久 | 久草手机在线 | 一区二区美女视频 | 国产午夜精品一区二区三区免费 | 精品视频在线免费看 | 91福利国产在线观一区二区 | 国产精品视频一区二区三区四区国 | 在线观看一二区 | 在线观看福利网站 | 中文字幕涩涩久久乱小说 | 久久在线免费视频 | 毛片视频网站 | 中文字幕在线观看91 | 暴力肉体进入hdxxxx0 | 在线播放一级片 | 午夜国产在线观看 | 久国久产久精永久网页 | 国内精品久久久久久2021浪潮 | 精品三区视频 | 欧美性受ⅹ╳╳╳黑人a性爽 | 黄网站免费入口 | 久久精品亚洲欧美日韩精品中文字幕 | 美女黄影院 | 精品一区二区三区在线观看国产 | 成人视屏网站 | 久久成人免费观看 | 亚洲网站免费观看 | 一区二区三区欧美在线观看 | 性大片免费看 | 视频一区二区不卡 | av免费在线不卡 | 中文字幕在线网站 | 成年人黄色片视频 | 日韩精品久久久 | 一本色道久久99精品综合蜜臀 | 国产91久久精品 | 蜜桃传媒视频麻豆第一区免费观看 | 韩毛片 |