zoukankan      html  css  js  c++  java
  • SSM整合

    一、引入所有的jar文件
    1. mysql数据库驱动jar
    mysql-connector-java-5.1.46.jar


    2. mybatis 的jar包
    mybatis-3.2.2.jar


    3. spring的核心jar。
    commons-logging-1.1.3.jar
    spring-beans-4.2.2.RELEASE.jar
    spring-context-4.2.2.RELEASE.jar
    spring-core-4.2.2.RELEASE.jar
    spring-expression-4.2.2.RELEASE.jar

    4. spring的注解。
    spring-aop-4.2.2.RELEASE.jar


    5. 事物处理。
    spring-aspects-4.2.2.RELEASE.jar
    spring-jdbc-4.2.2.RELEASE.jar
    spring-tx-4.2.2.RELEASE.jar
    com.springsource.org.aopalliance-1.0.0.jar
    com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

    6. 数据源的jar包
    c3p0-0.9.1.1.jar

    7. springmvc的jar包。
    spring-web-4.2.2.RELEASE.jar
    spring-webmvc-4.2.2.RELEASE.jar

    8. spring与mybatis整合的jar包
    mybatis-spring-1.3.0.jar

    二、配置文件

    1.spring的配置文件

    <?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:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        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-4.2.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
        
        <!-- 包扫描 -->
        <context:component-scan base-package="com.zhiyou100.klb"/>
        
        <!-- 引入属性文件 
        <context:property-placeholder file-encoding="utf-8" location="classpath:*.properties"/>
        -->
    
        <!-- 配置数据源:数据库交互的。c3p0 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="root" />
            <property name="password" value="123456" />
            <property name="driverClass" value="com.mysql.jdbc.Driver" />
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mybatis" />
        </bean>
        
        <!-- 定义一个SessionFactory工程类的bean ;把mybatis配置文件中的内容放在该类中-->
        <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!-- 为该包下的实体类起别名 -->
            <property name="typeAliasesPackage" value="com.zhiyou100.klb.bean"/>
            <!-- 加载mybatis的映射文件 -->
            <property name="mapperLocations" value="classpath:com/zhiyou100/klb/mapper/*.xml"/>
        </bean>
        
        <!-- 配置mybatis接口的实现类userDao=session.getMapper(UserDao.class);相当于创建了 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- basePackage:表示哪些包下的接口要产生实现类 -->
            <property name="basePackage" value="com.zhiyou100.klb.dao"/>
            <property name="sqlSessionFactory" ref="sessionFactory"/>
        </bean>
        
        <!-- 定义一个事务管理类 -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
        
        <!-- 设置方法的属性 -->
        <tx:advice transaction-manager="transactionManager" id="advice">
            <tx:attributes>
                <!-- read-only:只读。用在查询上 -->
                <tx:method name="query*" read-only="true"/>
                <tx:method name="find*" read-only="true"/>
                <tx:method name="get*" read-only="true"/>
                <tx:method name="select*" read-only="true"/>
                <tx:method name="*"/>
            </tx:attributes>
        </tx:advice>
        
        <!-- 切面的配置 -->
        <aop:config>
            <!-- 切点 业务层所在的包 -->
            <aop:pointcut expression="execution(* com.zhiyou100.klb.service.*.*(..))" id="pointcut"/>
            <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>
        </aop:config>
        
    </beans>

    2.springmvc的配置文件

    <?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"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
            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-4.2.xsd">
        
        <!-- 包扫描 -->
        <context:component-scan base-package="com.zhiyou100.klb"/>
        
        <!-- 开启注解驱动,设置编码 -->
        <mvc:annotation-driven/>
        
        <!-- 释放静态资源 -->
        <mvc:default-servlet-handler/>
        
        <!-- 配置视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
        
    </beans>

    3.web.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>SSM</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- 设置编码 -->
      <filter>
             <filter-name>CharacterEncodingFilter</filter-name>
             <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
             <init-param>
                     <param-name>encoding</param-name>
                     <param-value>UTF-8</param-value>
             </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
      
      <!-- 加载springmvc的配置文件 -->
          <!-- 设置控制器 -->
            <servlet>
                <servlet-name>springDispatcherServlet</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:spring-servlet.xml</param-value>
                </init-param>
                <!-- 容器在启动时加载springmvc的配置文件。访问时加载配置文件 -->
                <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
                <servlet-name>springDispatcherServlet</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>
            
        <!-- 加载spring的配置文件 -->
            <!-- 指定spring的配置文件的路径 -->
            <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:applicationContext.xml</param-value>
            </context-param>
        
            <!-- Bootstraps the root web application context before servlet initialization -->
            <listener>
                <!-- 默认加载的配置文件为WEB-INF/applicationContext.xml -->
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
        
    </web-app>

    三、用户表的crud

    1.com.zhiyou100.klb.bean

    package com.zhiyou100.klb.bean;
    
    public class Users {
        private int id;
        private String name;
        private int age;
        private String sex;
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

    2.com.zhiyou100.klb.dao

    package com.zhiyou100.klb.dao;
    
    import java.util.List;
    
    import com.zhiyou100.klb.bean.Users;
    
    public interface UsersDao {
        
        /**
         * 查询所有
         * @return
         */
        public List<Users> getAll();
    
        /**
         * 查询用户
         * @return
         */
        public Users getUser(int id);
        
        /**
         * 添加
         * @param user
         */
        public void add(Users user);
        
        /**
         * 根据ID删除
         * @param id
         */
        public void delete(int id);
        
        /**
         * 更新
         * @param user
         */
        public void update(Users user);
    }

    3.com.zhiyou100.klb.service

    package com.zhiyou100.klb.service;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.zhiyou100.klb.bean.Users;
    import com.zhiyou100.klb.dao.UsersDao;
    
    @Service
    public class UserService {
        
        @Autowired
        private UsersDao usersDao;
                
        /**
         * 查询所有
         * @return
         */
        public List<Users> getAll(){
            return usersDao.getAll();
        }
        
        /**
         * 查询用户
         * @return
         */
        public Users getUser(int id){
            return usersDao.getUser(id);
        }
        
        /**
         * 添加
         * @param user
         */
        public void add(Users user){
            usersDao.add(user);
        }
        
        /**
         * 根据ID删除
         * @param id
         */
        public void delete(int id) {
            usersDao.delete(id);
        }
        
        /**
         * 更新
         * @param user
         */
        public void update(Users user){
            usersDao.update(user);
        }
    }

    4.com.zhiyou100.klb.mapper

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zhiyou100.klb.dao.UsersDao">
        
        <select id="getUser" parameterType="int" resultType="Users">
              select * from users where id = #{id}   
        </select>
    
        <select id="getAll" resultType="Users">
              select * from users   
        </select>
        
        <insert id="add" parameterType="Users" useGeneratedKeys="true" keyProperty="id">
            insert into users(name,age,sex) values(#{name},#{age},#{sex})
        </insert>
        
        <delete id="delete" parameterType="int">
            delete from users where id = #{id} 
        </delete>
        
        <update id="update" parameterType="Users">
            update users set name = #{name}, age = #{age}, sex = #{sex} where id = #{id}
        </update>
      
    </mapper>

    5.com.zhiyou100.klb.controller

    package com.zhiyou100.klb.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.zhiyou100.klb.bean.Users;
    import com.zhiyou100.klb.service.UserService;
    
    @Controller
    @RequestMapping("user")
    public class UserController {
        
        @Autowired
        private UserService userService;
        
        @RequestMapping("deleteUser")
        public String delete(int id) {
            userService.delete(id);
            return "redirect:allUser";
        }
        
        @RequestMapping("allUser")
        public String all(Model model) {
            model.addAttribute("list", userService.getAll());
            return "list";
        }
        
        @RequestMapping("getAdd")
        public String getAdd() {
            return "add";
        }
        
        @RequestMapping("addUser")
        public String add(Users user) {
            userService.add(user);
            return "index";
        }
        
        @RequestMapping("getUpdate")
        public String getUpdate(int id,Model model) {
            System.out.println(id);
            model.addAttribute("user", userService.getUser(id));
            System.out.println(userService.getUser(id));
            return "update";
        }
        
        @RequestMapping("updateUser")
        public String update(Users user) {
            userService.update(user);
            return "redirect:allUser";
        }
        
    }
  • 相关阅读:
    FFmpeg软件只是个解码编码软件,如果支持多种格式必须先安装好对应的库,下面就说下我装的库
    在Centos 6.5 X64下切割m3u8
    扩展自己的数组核心库
    关于小周同志在消息模块定位功能修改时存在的问题分析
    比对两个Word文件内容是否一致的C#解决办法
    如何实现artTemplate模板的可重用性,以此框架打造自己的自定义组件
    稍微谈一下 javascript 开发中的 MVC 模式
    Node.js 函数
    Node.js模块系统
    Node.js Stream(流)
  • 原文地址:https://www.cnblogs.com/kklb/p/11494173.html
Copyright © 2011-2022 走看看