spring實例和調用過程

在下列命名過程中user統一改爲userm,應爲user在很多地方都是關鍵字
 
例如 Userm.java
UsermDAO.java
 
 
2. 建立user.hbm.xml的映射文件
之後應該把user.hbm.xml註冊到hibernate-config.xml文件中

在clmis系統的數據庫中有定義 一個用戶表 c_userM, 其中user_id 是根據oracle自動編號的,對應的序列爲 c_userm_sn,
 
可以通過 select c_userm_sn.nextval from dual 查詢出序列值
 
    請大家寫一個用戶管理的程序,包含用戶的新增,修改,查詢,刪除的功能,
 
查詢條件爲(可以模糊查詢)
 
用戶名:————  姓名:——————  查詢
 
 
 
 
程序的書寫步驟爲
 
 
第一階段
 
1. 創建javaBean userm
2. 建立userm.hbm.xml的映射文件
把userm.hbm.xml註冊到hibernate-config.xml文件中

3. 建立UsermDAO 接口(由於 新增 修改 刪除 的方法都有繼承,所以只需要寫一個 findUserByNameAndNo(String userName,String userNo))
4. 建立UsermDAOImpl 實現類, 實現 UsermDAO
5. 建立UsermService,基本代碼和UsermDAO一樣
6. 建立UsermServiceImpl,實現UsermService
7. 在erpit-base-dao.xml中註冊usermDAO
8. 在erpit-base-service.xml中註冊 usermService
 
(完成此步就可以用junit測試操作數據庫,學會單元測試,並測試成功後再寫下面步驟)
 
後階段
 
9. 填寫jsp頁面
10. 填寫controller程序
11. erpit-base-view.xml中註冊controller
12. 運行測試
 
 
注:
在java代碼中變量命名除 static final 變量中可以使用 中劃線或下劃線 -, 其他變量我們一般不會採用劃線
    例如:數據庫中 USER_NAME 我們一般對應爲 private String userName;
    我們可以定義常量就採用 public static final String SYS_CMIS_LOCKRMK = 'Y';
 
 
由於userId是採用oracle序列自動編號,所以在hbm.xml中配置時要自動應用 C_userm_sn付值
 
由於採用了hibernate做底層,很多方法都提取出來公共使用,所以我們把所有的table的主key,對應的javaBean中的字段都統一爲id,也就是c_userm表中user_id,就應該對應 user bean中的id字段,由於id是繼承下來的,所以在user.java bean中是不用定義private Long id的
 
在oracle數據中的date類型,在java中是用 java.sql.Timestamp類型接收的,在hbm.xml中是用 timestamp對應的
 
 
下面有個例子
 
 
 
 
 
 
public class Userm extends BaseEntity<Long> {
 private String user_no;
 private String user_nm;
 private String user_pwd;
 private String per_no;
 private String used_rmk;
 private EmailBean email;

 
 public User(){}
 public User(Long id){
  this.id = id;
 }
 public String getUser_no() {
  return user_no;
 }
 
 public void setUser_no(String user_no) {
  this.user_no = user_no;
 }
 
 public String getUser_nm() {
  return user_nm;
 }
 
 public void setUser_nm(String user_nm) {
  this.user_nm = user_nm;
 }
 
 public String getUser_pwd() {
  return user_pwd;
 }
 
 public void setUser_pwd(String user_pwd) {
  this.user_pwd = user_pwd;
 }
 
 public String getPer_no() {
  return per_no;
 }
 public void setPer_no(String per_no) {
  this.per_no = per_no;
 }
 @Override
 public boolean equalsIfIdNull(Object o) {
  // TODO Auto-generated method stub
  return false;
 }
 
 @Override
 public int hashCodeIfIdNull() {
  // TODO Auto-generated method stub
  return 0;
 }
 public EmailBean getEmail() {
  return email;
 }
 public void setEmail(EmailBean email) {
  this.email = email;
 }
 public String getUsed_rmk() {
  return used_rmk;
 }
 public void setUsed_rmk(String used_rmk) {
  this.used_rmk = used_rmk;
 }
 
}
 
hbm.xml
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.g512.app.base.model.admin">
   <class name="User" table="WUSERS">
    <id name="id" column="USER_ID" type="long">
   <generator class="sequence">
    <param name="sequence">WUSERS_SN</param>
   </generator>
  </id>
  <property name="user_no" column="USER_NO" type="string" />
  <property name="user_nm" column="USER_NM" type="string" />
  <property name="user_pwd" column="USER_PWD" type="string" />
  <property name="used_rmk" column="USED_RMK" type="string" />
  <property name="per_no" column="PER_NO" type="string" length="6" />
   </class>
</hibernate-mapping>


1.從ie中輸入url,例如 index.htm
2.springmvc 會根據web.xml中配置,一切.htm都要採用springmvc的轉向,所以會根據spring的轉向配置文件dispatcher-servlet.xml
3.從dispatcher-servlet.xml文件中可以看到,index.htm是執行indexController的,但再執行indexController之前,我們要先執行logonValidatorController,這個也是配置,例如login.htm我們就沒有要求他執行logonValidatorController,logonValidatorController是個過濾器,他的作用是判斷是否有登錄,所以程序就轉到logonValidatorController中,因爲沒有登錄,所以就轉向了login.jsp了
logonValidatorController的代碼在base/filter/filter.xml中配置的,從logonValidatorController配置代碼中可以看到爲什麼會轉向login.jsp也是配置的。
4.當我們輸入用戶名和密碼後,我們從login.jsp中可以看到,程序是提交到了login.htm?method=loginCheck,表示執行login.htm中的loginCheck的方法,這又回到了第二步了,他又會根據dispatcher-servlet.xml,login.htm又會執行loginController,loginController對應到什麼java文件?我們要從mvc文件夾中的配置xml文件了,因爲controller將來會很多,所以我就對他分類管理,loginController是基本,所以我放在base/mvc/eip-base-mvc.xml中,我們可以看到他執行的是com.byd.erpit.base.controller.admin.LoginController.java,但是他有用到數據庫查詢,所以要用到service,service是要調用dao的,所以大家可以根據service和dao的配置查詢到具體調用的代碼。

發佈了23 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章