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的配置查询到具体调用的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值