• maven开发SSH


    虽然开发SSH的基本步骤都差不多,但每次都从头开始做真的会有点儿烦,把maven的SSH框的基本代码放出来,下次就可以复制粘贴哈哈。

    1. 配置文件:

    (1)pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.jmu.graduation</groupId>
        <artifactId>video</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>video Maven Webapp</name>
        <url>http://maven.apache.org</url>
        
        <!-- 定义常量、SSH的版本、日志系统版本 -->
        <properties>  
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
            <spring.version>4.3.3.RELEASE</spring.version>  
            <hibernate.version>4.3.5.Final</hibernate.version>  
            <struts.version>2.3.30</struts.version>  
            <logback.version>1.1.6</logback.version>
            <slf4j.version>1.6.0</slf4j.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
    
    
            <!-- struts2 -->
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>${struts.version}</version>
            </dependency>
    
            <!-- hibernate4.3.5 -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
             <dependency>  
                <groupId>org.hibernate</groupId>  
                <artifactId>hibernate-c3p0</artifactId>  
                <version>${hibernate.version}</version>  
            </dependency>  
    
            <!-- spring4.3.3 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-spring-plugin</artifactId>
                <version>2.3.30</version>
            </dependency>
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-tx</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-jdbc</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-orm</artifactId>  
                <version>${spring.version}</version>  
            </dependency>
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-web</artifactId>  
                <version>${spring.version}</version>  
            </dependency> 
    
            <!-- 日志依赖包,logback需要3个包 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-access</artifactId>
                <version>${logback.version}</version>
            </dependency>
    
        </dependencies>
        <build>
            <finalName>video</finalName>
        </build>
    </project>

    (2)web.xml

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
    
        <!-- 配置struts2过滤器 -->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
        <!-- Spring框架的核心监听器 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
    </web-app>

    (3)jdbc.properties

    jdbc.driverClass=oracle.jdbc.driver.OracleDriver
    jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
    jdbc.username=binjf
    jdbc.password=123456

    (4)logback.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>E:workspacemyApp.log</file>
            <encoder>
                <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
                </pattern>
            </encoder>
        </appender>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%msg%n</pattern>
            </encoder>
        </appender>
    
        <root level="debug">
            <appender-ref ref="FILE" />
            <appender-ref ref="STDOUT" />
        </root>
    </configuration>

    (5)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:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
    
        <!-- 引入外部的属性文件 -->
        <context:property-placeholder location="classpath:jdbc.properties" />
    
        <!-- 配置连接池 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driverClass}"></property>
            <property name="jdbcUrl" value="${jdbc.url}"></property>
            <property name="user" value="${jdbc.username}"></property>
            <property name="password" value="${jdbc.password}"></property>
        </bean>
    
        <!-- 配置Hibernate的相关属性,需要spring-orm.jar包 -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    
            <!-- 注入连接池 -->
            <property name="dataSource" ref="dataSource"></property>
    
            <!-- 配置Hibernate的属性,配置hibernate 的基本信息 -->
            <property name="hibernateProperties">
                <props>
                    <!-- hibernate 所使用的数据库方言 -->
                    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                    <!-- 执行操作时是否在控制台打印SQL -->
                    <prop key="hibernate.show_sql">true</prop>
                    <!-- 是否对SQL 进行格式化 -->
                    <prop key="hibernate.format_sql">true</prop>
                    <!-- 指定自动生成数据表的策略。update:数据库中有该表就使用,没表就创建 -->
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                </props>
            </property>
    
            <!-- 加载Hibernate中的映射文件 -->
            <property name="mappingResources">
                <list>
                    <!-- .hbm.xml的全路径,包名用"/"隔开而不是用"." -->
                    <value>com/jmu/video/entity/User.hbm.xml</value>
                </list>
            </property>
        </bean>
    
        <!-- 配置action的类(把action交给spring管理,在struts.xml配置action时,class不用写全类名,使等于bean的id即userinfoAction) -->
        <bean id="loginAction" class="com.jmu.video.action.LoginAction"
            scope="prototype">
            <!-- 手动注入service -->
            <property name="userService" ref="userService"></property>
        </bean>
        <bean id="registerAction" class="com.jmu.video.action.RegisterAction" scope="prototype">
            <property name="userService" ref="userService"></property>
        </bean>
    
        <!-- 配置业务层的类 -->
        <bean id="userService" class="com.jmu.video.service.impl.UserServiceImpl">
            <property name="userDao" ref="userDao"></property>
        </bean>
    
        <!-- 配置dao的类 -->
        <bean id="userDao" class="com.jmu.video.dao.UserDao">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
    
    
        <!-- 配置事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
    
        <!-- 开启注解事务 -->
        <tx:annotation-driven transaction-manager="transactionManager" />
    
    </beans>

    (6)struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="default" namespace="/" extends="struts-default">
            <action name="loginAction" class="loginAction" method="execute">
                <result name="success">success.jsp</result>
                <result name="fail">fail.jsp</result>
            </action>
            
            <action name="registerAction" class="registerAction" method="execute">
                <result name="success">success.jsp</result>
                <result name="fail">fail.jsp</result>
            </action>
    
            <!-- 验证码 -->
            <action name="createImageAction" class="com.jmu.video.action.CreateImageAction"
                method="execute">
                <result name="success" type="stream">
                    <param name="contentType">image/jpeg</param>
                    <param name="inputName">inputStream</param>
                </result>
            </action>
        </package>
    </struts>

    2. java文件

    (1)LoginAction.java

    package com.jmu.video.action;
    
    import java.util.List;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.jmu.video.entity.User;
    import com.jmu.video.service.UserService;
    import com.jmu.video.service.impl.UserServiceImpl;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    /**
     * 用户登陆处理类
     *
     * @author Sky
     * @date 2017年3月20日 上午11:04:59
     */
    public class LoginAction extends ActionSupport implements ModelDriven<User> {
        
        private static final long serialVersionUID = 1L;
        
        private static final Logger log = LoggerFactory.getLogger(ActionSupport.class);
        private User user = new User();
        private UserService userService;
        
        public String execute(){
            log.info("loginAction...");
            log.info(user.getUserName());
            List<User> users = userService.findUserByName(user.getUserName());
            log.info(users.get(0).getUserName() + "==================");
            return "success";
        }
    
        @Override
        public User getModel() {
            return user;
        }
        public User getUser() {
            return user;
        }
        public void setUser(User user) {
            this.user = user;
        }
        public void setUserService(UserService userService) {
            this.userService = userService;
        }
    }

    (2)UserService.java接口

    package com.jmu.video.service;
    
    import java.util.List;
    
    import javax.transaction.Transactional;
    
    import com.jmu.video.entity.User;
    
    /**
     * 业务层 UserService 接口
     *
     * @author Sky
     * @date 2017年3月20日 上午11:04:33
     */
    @Transactional
    public interface UserService {
    
        List<User> findUserByName(String userName);
    }

    (3)UserServiceImpl.java实现类

    package com.jmu.video.service.impl;
    
    import java.util.List;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.jmu.video.dao.UserDao;
    import com.jmu.video.entity.User;
    import com.jmu.video.service.UserService;
    
    /**
     * 业务层 UserService类
     *
     * @author Sky
     * @date 2017年3月20日 上午11:03:57
     */
    public class UserServiceImpl implements UserService {
        
        private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class);
        private UserDao userDao;
    
        public void setUserDao(UserDao userDao) {
            this.userDao = userDao;
        }
    
        @Override
        public List<User> findUserByName(String userName) {
            log.info("userService....");
            return userDao.findUserByName(userName);
        }
    }

    (4)UserDao.java类

    package com.jmu.video.dao;
    
    import java.util.List;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
    
    import com.jmu.video.entity.User;
    
    /**
     * dao类
     *
     * @author Sky
     * @date 2017年3月20日 上午11:03:37
     */
    public class UserDao extends HibernateDaoSupport{
        
        private static final Logger log = LoggerFactory.getLogger(UserDao.class);
        
        private User user;
    
        public List<User> findUserByName(String userName) {
            log.info("userDao...");
            String hql = "from User u where u.userName=?";
            return (List<User>) this.getHibernateTemplate().find(hql, userName);
        }
    }

    (5)User.java类

    package com.jmu.video.entity;
    /**
     * 用户实体类
     *
     * @author Sky
     * @date 2017年3月20日 上午10:39:48
     */
    public class User {
        private int userId;
        private String userName;
        private String password;
        private String email;
        private String address;
        private String phone; 
        private String vocation; //职业
        
        public int getUserId() {
            return userId;
        }
        public void setUserId(int userId) {
            this.userId = userId;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        public String getVocation() {
            return vocation;
        }
        public void setVocation(String vocation) {
            this.vocation = vocation;
        }
    }

    (6)User.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">
    <!-- Generated 2017-3-20 12:13:43 by Hibernate Tools 3.4.0.CR1 -->
    <hibernate-mapping>
        <class name="com.jmu.video.entity.User" table="USERINFO">
            <id name="userId" type="int">
                <column name="USERID" />
                <generator class="native" />
            </id>
            <property name="userName" type="java.lang.String">
                <column name="USERNAME" />
            </property>
            <property name="password" type="java.lang.String">
                <column name="PASSWORD" />
            </property>
            <property name="email" type="java.lang.String">
                <column name="EMAIL" />
            </property>
            <property name="address" type="java.lang.String">
                <column name="ADDRESS" />
            </property>
            <property name="phone" type="java.lang.String">
                <column name="PHONE" />
            </property>
            <property name="vocation" type="java.lang.String">
                <column name="VOCATION" />
            </property>
        </class>
    </hibernate-mapping>

    3. 目录结构

  • 相关阅读:
    萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第三节 梯度下降法 (上)理解篇
    萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第二节 线性回归算法 (下)实操篇
    萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第二节 线性回归算法 (上)理解篇
    萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第一节 KNN算法 (下)实操篇
    萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第一节 KNN算法 (上)理解篇
    萌新向Python数据分析及数据挖掘 第二章 pandas 第五节 Getting Started with pandas
    Oracle数据库安装和授权
    c# 如何获取JSON文件以及如何获取Config文件(framework 和 net .Core)
    C#Core查询数据库存储EXCEL文件
    如何在WINDOW系统下编译P12证书制作
  • 原文地址:https://www.cnblogs.com/sky230/p/6590883.html
Copyright © 2020-2023  润新知