• zbb20170223_spring_hibernate


    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>

  • 相关阅读:
    Sentinel实现熔断和限流
    Nacos 服务注册和配置中心
    SpringCloud Sleuth 分布式请求链路跟踪
    SpringCloud Stream消息驱动
    SpringCloud Bus消息总线
    SpringCloud Config分布式配置中心
    Geteway服务网关
    Hystrix断路器
    libecc:一个可移植的椭圆曲线密码学库
    第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?
  • 原文地址:https://www.cnblogs.com/super-admin/p/6436055.html
Copyright © 2020-2023  润新知