1、结构图
2、class文件
BaseController.java
package com.zbb.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.zbb.entity.Event; import com.zbb.itf.iservice.IBaseService; @Controller @RequestMapping("/baseController") public class BaseController { @Autowired IBaseService iBaseService; @RequestMapping("/toLogin") public String toLogin() { return "login"; } @ResponseBody @RequestMapping("/getAll") public String getAll(){ List all = iBaseService.getAll(Event.class); for (Object object : all) { System.out.println((Event)object); } return all.toString(); } }
BaseService.java
package com.zbb.cls.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zbb.itf.idao.IBaseDao; import com.zbb.itf.iservice.IBaseService; @Service public class BaseService implements IBaseService{ @Autowired IBaseDao iBaseDao; @Override public List getAll(Class cls) { // TODO Auto-generated method stub return iBaseDao.getAll(cls); } }
IBaseService.java
package com.zbb.itf.iservice; import java.util.List; public interface IBaseService { public List getAll(Class cls); }
BaseDao.java
package com.zbb.cls.dao; import java.sql.SQLException; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.springframework.stereotype.Repository; import com.zbb.itf.idao.IBaseDao; @Repository public class BaseDao extends HibernateDaoSupport implements IBaseDao { @Override public List getAll(final Class cls) { // TODO Auto-generated method stub return super.getHibernateTemplate().executeFind(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { // TODO Auto-generated method stub return session.createQuery("from " + cls.getSimpleName()).list(); } }); } @Autowired public void setMySessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } }
IBaseDao.java
package com.zbb.itf.idao; import java.util.List; public interface IBaseDao { public List getAll(Class cls); }
Event.java
package com.zbb.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; /** * Event entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "event", catalog = "test") public class Event implements java.io.Serializable { // Fields private Long EId; private String ETitme; private String EDate; // Constructors /** default constructor */ public Event() { } /** minimal constructor */ public Event(Long EId) { this.EId = EId; } /** full constructor */ public Event(Long EId, String ETitme, String EDate) { this.EId = EId; this.ETitme = ETitme; this.EDate = EDate; } // Property accessors @Id @Column(name = "e_id", unique = true, nullable = false) public Long getEId() { return this.EId; } public void setEId(Long EId) { this.EId = EId; } @Column(name = "e_titme") public String getETitme() { return this.ETitme; } public void setETitme(String ETitme) { this.ETitme = ETitme; } @Column(name = "e_date") public String getEDate() { return this.EDate; } public void setEDate(String EDate) { this.EDate = EDate; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Event [EId="); builder.append(EId); builder.append(", ETitme="); builder.append(ETitme); builder.append(", EDate="); builder.append(EDate); builder.append("]"); return builder.toString(); } }
3、配置文件
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 启动注解支持 --> <context:annotation-config /> <context:component-scan base-package="com.zbb"></context:component-scan> <!-- 视图解析 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.use_sql_comments">false</prop> </props> </property> <property name="annotatedClasses"> <list> <value>com.zbb.entity.Event</value></list> </property></bean> </beans>
log4j.properties
log4j.rootCategory=INFO,stdout,R #stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[BOSS] %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n #File log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=${catalina.home}\logs\boss\boss.log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d-[BOSS] %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n #Class log4j.logger.org.apache.commons=ERROR log4j.logger.org.displaytag=ERROR log4j.logger.org.springframework=INFO log4j.logger.org.apache.velocity=FATAL log4j.logger.org.hibernate=INFO log4j.logger.org.hibernate.SQL=DEBUG log4j.logger.com.zbb=DEBUG
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <error-page> <error-code>404</error-code> <location>/WEB-INF/jsp/errorInfo/ERROR_404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/jsp/errorInfo//ERROR_500.jsp</location> </error-page> </web-app>
jsp文件
主要用于访问资源
<a href="${pageContext.request.contextPath }/baseController/toLogin">toLogin</a>