• 开发环境

    1,项目用到的框架有:Spring3.2.14.RELEASE、Hibernate4.2.20.Final、Bootstrap3

    2,开发工具eclipse、maven

    3,数据库Mysql5.6.24

  • 正文

1.数据库表

CREATE TABLE `user` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `USER_NAME` varchar(100) DEFAULT NULL,
  `PASSWD` varchar(100) DEFAULT NULL,
  `STATE` tinyint(4) DEFAULT NULL,
  `CREATE_TIME` date DEFAULT NULL,
  `UPDATE_TIME` date DEFAULT NULL,
  `DECRIBE` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`ID`)
)

2.配置文件

 1) web.xml



	Archetype Created Web Application
	
		contextConfigLocation
		classpath:applicationContext.xml
	

	
		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	

	
		encodingFilter
		/*
	

	
		org.springframework.web.context.ContextLoaderListener
	

	
		dispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:SpringMVC.xml
		
		1
	

	
		dispatcherServlet
		*.htm
	

	
		view/user/index.jsp
	

 2) db_info.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/zws001
jdbc.username=root
jdbc.password=root

 3) log4j.properties

log4j.rootCategory = info,stdout

log4j.appender.stdout = org.apache.log4j.ConsoleAppender\t\t		
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH\:mm\:ss}|%p|%C|%M|%L|%m%n

 4) applicationContext.xml



	
	
	
	  	 
	     
		
	
	
	
	
		
		
		
		
		
		
		
		
	 
	
	    
		
			
                org.hibernate.dialect.MySQLDialect  
                true  
                true  
                update  
			
		
		
			
				com.zws.user.beans
			
		
	

	
		
	

 5) SpringMVC.xml



	
	
	  	
	
	
	    
	    
	

3.实体Bean

package com.zws.user.beans;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="USER")
public class User {

	@Id
	@Column(name="ID")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	@Column(name="USER_NAME")
	private String userName;
	
	@Column(name="PASSWD")
	private String passwd;
	
	@Column(name="STATE")
	private Integer state;
	
	@Column(name="CREATE_TIME")
	private Date createTime;
	
	@Column(name="UPDATE_TIME")
	private Date updateTime;
	
	@Column(name="DECRIBE")
	private String describe;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public String getDescribe() {
		return describe;
	}

	public void setDescribe(String describe) {
		this.describe = describe;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", userName=" + userName + ", passwd="
				+ passwd + ", state=" + state + ", createTime=" + createTime
				+ ", updateTime=" + updateTime + ", describe=" + describe + "]";
	}
}

4.持久层

 1) BaseDao.java

package com.zws.user.dao;

import java.math.BigInteger;
import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;

import com.zws.user.beans.User;

public class BaseDao {
	@Autowired
	private SessionFactory sessionFactory;
	
	public void save(T entity) {
		getSession().save(entity);
	}
	
	public Session getSession() {
		return sessionFactory.getCurrentSession();
	}

	@SuppressWarnings("unchecked")
	public List queryList(String hql) {
		return getSession().createQuery(hql).list();	
	}
	
	@SuppressWarnings("unchecked")
	public List querySQList(String sql, Class clz) {
		return getSession().createSQLQuery(sql).addEntity(clz).list();	
	}
	
	@SuppressWarnings("unchecked")
	public List querySQList(String sql,Class clz, String... vals) {
		SQLQuery query = getSession().createSQLQuery(sql).addEntity(clz);
		if (vals != null && vals.length > 0) 
			for (int i = 0; i < vals.length; i++) {
				query.setParameter(i, vals[i]);
			}
		return query.list();
	}
	
	public Integer getCount(String sql) {
		return ((BigInteger) getSession().createSQLQuery(sql).uniqueResult()).intValue();
	}
	
	public void self() {
		getSession().createCriteria(User.class).add(Restrictions.eq("userName", ""));
	}
	
}

 2) UserDao.java

package com.zws.user.dao;

import java.util.List;

import com.zws.user.beans.User;

public interface UserDao {

	void save(User user);
	
	List queryUsers(User user);
	
	Integer querySize(User user);
}

 3) UserDaoImpl.java

package com.zws.user.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.zws.user.beans.User;
import com.zws.user.dao.BaseDao;
import com.zws.user.dao.UserDao;
@Repository
public class UserDaoImpl extends BaseDao implements UserDao {

	public void save(User user) {
		super.save(user);
	}

	public List queryUsers(User user) {
		String hql = "FROM User WHERE state = " + user.getState();
		return queryList(hql);
	}

	public Integer querySize(User user) {
		String sql = "SELECT COUNT(*) FROM USER WHERE STATE = " + user.getState();
		return getCount(sql);
	}

}

5.服务层

 1) UserService.java

package com.zws.user.service;

import java.util.List;

import com.zws.user.beans.User;

public interface UserService {

	void save(User user);
	
	List queryUsers(User user);
	
	Integer querySize(User user);
}

 2) UserServiceImpl.java

package com.zws.user.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.zws.user.beans.User;
import com.zws.user.dao.UserDao;
import com.zws.user.service.UserService;
@Service
@Transactional
public class UserServiceImpl implements UserService{
	@Autowired
	@Qualifier("userDaoImpl")
	private UserDao userDao;

	public void save(User user) {
		userDao.save(user);
	}
	public List queryUsers(User user) {
		return userDao.queryUsers(user);
	}

	public Integer querySize(User user) {
		return userDao.querySize(user);
	}

}

6.视图控制层

 1) UserController.java

package com.zws.user.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.zws.user.beans.User;
import com.zws.user.service.UserService;

@Controller
@RequestMapping("/user")
public class UserController {

	@Autowired
	@Qualifier("userServiceImpl")
	private UserService service;
	
	@RequestMapping(value="/login.htm")
	public ModelAndView login(User user) {
		System.out.println(user);
		user.setState(1);
		List users = service.queryUsers(user);
		ModelAndView view = new ModelAndView("user/jsp/home");
		view.addObject("users", users);
		return view;
	}
}

7.视图

 1) /SpringMVCHibernate4/src/main/webapp/view/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 





/css/bootstrap.min.css">


login please

	



	
		

			" method="post">
				
					Email address 
					
				
Password