博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Annotation方式的SpringMVC4+Spring4+Hibernate4
阅读量:5892 次
发布时间:2019-06-19

本文共 7139 字,大约阅读时间需要 23 分钟。

hot3.png

本项目基于Annotation方式的SpringMVC4+Sping4+Hibernate4。用到的所有jar包如下:

150902_TGVh_2430057.png

150902_Cwph_2430057.png

项目的整体结构如下:

151702_184q_2430057.png

  1. WEB_INF/web.xml:

  < display-name>SpringMVC_xml  < welcome-file-list>    
index.html 
    
index.htm 
    
index.jsp 
    
default.html 
    
default.htm 
    
default.jsp 
  
   < filter>     
encodingFilter 
       
 org.springframework.web.filter.CharacterEncodingFilter     
            
encoding 
            
utf-8
     
  
  < filter-mapping>     
encodingFilter 
     
/* 
     
  
  
         
        
springmvc        
 org.springframework.web.servlet.DispatcherServlet        
            
contextConfigLocation 
            
classpath:spring-mvc.xml 
        
        
    
    
        
springmvc        
*.action 
    
       
        
 org.springframework.web.context.ContextLoaderListener    
       
        
contextConfigLocation 
        
classpath:beans.xml 
    
   

2.src/beans.xml:

           
    
             
               
                    
          
          
          
          
               
      
                
         
         
              
                 
org.hibernate.dialect.MySQLDialect                  
 true
                
 update
                  
 true
              
                        
              
                 
entity 
             
                          
    
     
         

3.src/spring-mvc.xml:

                     
     
     
    
             
    
        
        
      

4.user/user.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
Insert title here
uname:
pwd:
repwd
提交:

5.user/userResult.jsp:

<%@ page language ="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@page import= "entity.User" %>
 Insert title here</ title></head>     
注册成功 
      uname:<%= request.getParameter("uname" ) %> 写入成功

6.controller.UserController.java:

package controller;import javax.annotation.Resource;import org.springframework.web.bind.annotation.RequestMapping;import entity.User;import service.UserService;import org.springframework.stereotype.Controller;@Controller@RequestMapping("user/user.action")public class UserController{	private UserService userService;		public UserService getUserService() {		return userService;	}	@Resource	public void setUserService(UserService userService) {		this.userService = userService;	}	private User user;		@RequestMapping(params="method=log")	public String log(String uname,String pwd){		System.out.println("log() invoked");		System.out.println(uname+pwd);		user = new User();		user.setUname(uname);		user.setPwd(pwd);		userService.add(user);		return "user/userResult";			}		@RequestMapping(params="method=log2")	public String log2(User user){//类似Struts2的模型驱动,可自动将页面提交的uname和pwd封装进该User对象		System.out.println("log2() invoked");		System.out.println(user.getUname()+user.getPwd());		userService.add(user);		return "user/userResult";			}}

7.entity.User.java:

package entity;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class User {     private int id;     private String uname;     private String pwd;     @Id     @GeneratedValue     public int getId() {          return id;     }     public void setId(int id) {          this.id = id;     }     public String getUname() {          return uname;     }     public void setUname(String uname) {          this.uname = uname;     }     public String getPwd() {          return pwd;     }     public void setPwd(String pwd) {          this.pwd = pwd;     }    }

8.service.UserService.java:

package service;import java.util.List;import entity.User;public interface UserService {     boolean exists(User user);     void add(User user);         List
 getUsers();         User getUser(int id);}

9.service.UserServiceImpl.java:

package service;import java.util.List;import javax.annotation.Resource;import org.springframework.transaction.annotation.Transactional;import dao.UserDao;import entity.User;public class UserServiceImpl implements UserService { private UserDao userDao;public UserDao getUserDao() {return userDao;}@Resourcepublic void setUserDao(UserDao userDao) {this.userDao = userDao;}/* (non-Javadoc)* @see service.UserService#exists(entiey.User)*/@Overridepublic boolean exists(User user) {return userDao.checkUserExistsByUname(user.getUname());   }/* (non-Javadoc)* @see service.UserService#add(entiey.User)*/@Override@Transactionalpublic void add(User user) {System.out.println("add成功");userDao.save(user);  }@Overridepublic List
 getUsers() {return userDao.getUsers();}@Overridepublic User getUser(int id) {return userDao.getUser(id);}}

10.dao.UserDao.java:

package dao;import java.util.List;import entity.User;public interface UserDao {     boolean checkUserExistsByUname(String uname);     void save(User user);         List
 getUsers();         User getUser(int id);}

11.dao.UserDaoImpl.java:

package dao;import java.util.List;import javax.annotation.Resource;import org.springframework.orm.hibernate4.HibernateTemplate;import entity.User;public class UserDaoImpl implements UserDao {     private HibernateTemplate hibernateTemplate;             public HibernateTemplate getHibernateTemplate() {          return hibernateTemplate;     }         @Resource     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {          this.hibernateTemplate = hibernateTemplate;     }             /* (non-Javadoc)     * @see dao.UserDao#checkUserExistsByUname(java.lang.String)     */     @Override     public boolean checkUserExistsByUname(String uname){          //String sql = "select count(*) from User where uname = '"+uname+"'";          String sql = "from User where uname = '"+uname+"'";          List list = (List) hibernateTemplate.find(sql);          if(list!=null&&list.size()>0){               return true;          }                  return false;     }         /* (non-Javadoc)     * @see dao.UserDao#save(entiey.User)     */     @Override     public void save(User user){          hibernateTemplate.save(user);     }     @Override     public List
 getUsers() {          return (List
) hibernateTemplate.find("from User");     }     @Override     public User getUser(int id) {          return hibernateTemplate.load(User.class, id);          //使用load()时,会报LazyInitializationException,这时需在web.xml中配置过滤器openSessionInViewFilter          //return hibernateTemplate.get(User.class, id);独立表格或小数据量的可使用get获取     }}

转载于:https://my.oschina.net/u/2430057/blog/552174

你可能感兴趣的文章
SOCK_STREAM & SOCK_DGRAM
查看>>
css的border的solid
查看>>
div+css实现window xp桌面图标布局(至上而下从左往右)
查看>>
0-1 背包问题
查看>>
运行Maven是报错:No goals have been specified for this build
查看>>
Haskell 差点儿无痛苦上手指南
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
NTP 服务器配置
查看>>
关于window.history.back()后退问题
查看>>
5、利用控件TVCLZip和TIdFTP压缩文件并上传到FTP的线程单元pas
查看>>
EXP/IMP 命令参数
查看>>
为什么直接杀死线程是不好的
查看>>
(原创)android4.4沉浸式标题栏
查看>>
iOS开发-UICollectionView实现瀑布流
查看>>
后进先出 栈 简单应用
查看>>
jQuery自动完成点击html元素
查看>>
c++ :: 域操作符
查看>>
Project 03- STM32F4xx PID controller
查看>>
PHP环境搭建
查看>>
[算法]基于分区最近点算法的二维平面
查看>>