精华内容
下载资源
问答
  • ssm项目整合

    2017-12-03 19:36:32
    ssm项目整合资料,spring+springmvc+mybatis框架的整合jar包和配置文件。
  • SSM项目整合

    2020-09-08 23:45:30
    SSM项目整合 ##SpringMVC大纲 第1章:搭建整合环境 ####1.1 搭建整合环境 整合说明:SSM整合可以使用多种方式,咱们会选择XML + 注解的方式 整合的思路 先搭建整合的环境 先把Spring的配置搭建完成 再使用Spring...

    SSM项目整合

    ##SpringMVC大纲

    第1章:搭建整合环境

    ####1.1 搭建整合环境

    整合说明:SSM整合可以使用多种方式,咱们会选择XML + 注解的方式

    整合的思路

    1. 先搭建整合的环境
    2. 先把Spring的配置搭建完成
    3. 再使用Spring整合SpringMVC框架
    4. 最后使用Spring整合MyBatis框架

    创建数据库和表结构

    语句

      create database ssm;
      use ssm;
      create table account(
      	id int primary key auto_increment,
      	name varchar(20),
      	money double
      );
    

    创建ssm,并在pom.xml文件中引入坐标依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.itheima</groupId>
        <artifactId>springmvcspringmybatis</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <!--war包-->
        <packaging>war</packaging>
    



    <spring.version>5.0.2.RELEASE</spring.version>
    <slf4j.version>1.6.6</slf4j.version>
    <log4j.version>1.2.12</log4j.version>
    <mysql.version>5.1.6</mysql.version>
    <mybatis.version>3.4.5</mybatis.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>


            <!-- spring -->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.6.8</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</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>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>compile</scope>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.0</version>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
    
            <!-- log start -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!-- log end -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.3.0</version>
            </dependency>
    
            <dependency>
                <groupId>c3p0</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.1.2</version>
                <type>jar</type>
                <scope>compile</scope>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>18081</port>
                        <path>/</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    部署ssm的项目,只要把ssm项目加入到tomcat服务器中即可

    ####1.2 编写实体类
    package com.itheima.domain;
    public class Account {

        private Integer id;
        private String name;
        private Double money;
    
        //get...set...toString
    }
    

    ####1.3 编写dao接口
    package com.itheima.dao;
    import com.itheima.domain.Account;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import java.util.List;
    public interface AccountDao {
    /***
    * 保存账号
    * @param account
    */
    int saveAccount(Account account);

        /***
         * 查询所有
         * @return
         */
        List<Account> findAll();
    }
    

    ####1.4 编写service接口和实现类
    package com.itheima.service;
    import com.itheima.domain.Account;
    import java.util.List;
    public interface AccountService {

        /***
         * 保存账号
         * @param account
         */
        void saveAccount(Account account);
    
        /***
         * 查询所有
         * @return
         */
        List<Account> findAll();
    
    }
    


    package com.itheima.service.impl;
    import com.itheima.dao.AccountDao;
    import com.itheima.domain.Account;
    import com.itheima.service.AccountService;
    import org.springframework.stereotype.Service;
    import java.util.List;
    @Service
    public class AccountServiceImpl implements AccountService {

        private AccountDao accountDao;
    
        @Override
        public void saveAccount(Account account) {
            System.out.println(acount);
        }
    
        @Override
        public List<Account> findAll() {
    		System.out.println("正在执行findAll");
            return null;
        }
    }
    

    第2章:Spring框架代码的编写

    ####2.1 搭建和测试Spring的开发环境

    #####2.1.1 在ssm的resources下创建spring.xml的配置文件,编写具体的配置信息。
    <?xml version="1.0" encoding="UTF-8"?>

        <!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让SpringMVC框架去管理 -->
        <context:component-scan base-package="com.itheima">
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    </beans>
    

    #####2.1.2 在ssm项目中编写测试方法,进行测试
    public class SpringMyBatisSpringMVCTest {

        private AccountService accountService;
    
        @Before
        public void init(){
            ApplicationContext act = new ClassPathXmlApplicationContext("spring.xml");
            accountService = act.getBean(AccountService.class);
        }
    
        @Test
        public void testFindAll(){
            List<Account> accounts = accountService.findAll();
        }
    }
    

    第3章:Spring整合SpringMVC框架

    3.1 搭建和测试SpringMVC的开发环境

    #####3.1.1 在web.xml中配置DispatcherServlet前端控制器


    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet


    contextConfigLocation
    classpath:springmvc.xml


    1


    dispatcherServlet
    /

    #####3.1.2 在web.xml中配置DispatcherServlet过滤器解决中文乱码


    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter

    encoding
    UTF-8



    characterEncodingFilter
    /*

    #####3.1.3 创建springmvc.xml的配置文件,编写配置文件
    <?xml version="1.0" encoding="UTF-8"?>

        <!-- 扫描controller的注解,别的不扫描 -->
        <context:component-scan base-package="com.itheima" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    
        <!-- 配置视图解析器 -->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- JSP文件所在的目录 -->
            <property name="prefix" value="/WEB-INF/pages/" />
            <!-- 文件的后缀名 -->
            <property name="suffix" value=".jsp" />
        </bean>
    
        <!-- 设置静态资源不过滤 -->
        <mvc:resources location="/css/" mapping="/css/**" />
        <mvc:resources location="/images/" mapping="/images/**" />
        <mvc:resources location="/js/" mapping="/js/**" />
    
        <!-- 开启对SpringMVC注解的支持 -->
        <mvc:annotation-driven />
    
    </beans>
    

    #####3.1.4 测试SpringMVC的框架搭建是否成功

    ######3.1.4.1 编写index.jsp和list.jsp编写,超链接
    查询所有

    ######3.1.4.1 创建AccountController类,编写方法,进行测试
    package com.itheima.controller;
    import com.itheima.domain.Account;
    import com.itheima.service.AccountService;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import java.util.List;
    @Controller
    @RequestMapping(value = “/account”)
    public class AccountController {

        private AccountService accountService;
    
        /***
         * 查询所有
         * @return
         */
        @RequestMapping(value = "/findAll")
        public String findAll(){
            return "list";
        }
    
        /***
         * 保存账号
         * @param account
         * @return
         */
        @RequestMapping(value = "/add")
        public String add(Account account){
            return "redirect:account/findAll";
        }
    }
    

    3.2 Spring整合SpringMVC的框架

    目的:在controller中能成功的调用service对象中的方法。

    在项目启动的时候,就去加载spring.xml的配置文件,在web.xml中配置ContextLoaderListener监听器。

    <!-- 配置Spring的监听器 -->
    <listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 配置加载类路径的配置文件 -->
    <context-param>
    	<param-name>contextConfigLocation</param-name>
    	<param-value>classpath:spring.xml</param-value>
    </context-param>
    

    在controller中注入service对象,调用service对象的方法进行测试

    package com.itheima.controller;
    import com.itheima.domain.Account;
    import com.itheima.service.AccountService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import java.util.List;
    @Controller
    @RequestMapping(value = "/account")
    public class AccountController {
    
        @Autowired
        private AccountService accountService;
    
        /***
         * 查询所有
         * @return
         */
        @RequestMapping(value = "/findAll")
        public String findAll(){
            //调用AccountService实现查询
            List<Account> accounts = accountService.findAll();
            return "list";
        }
    
        /***
         * 保存账号
         * @param account
         * @return
         */
        @RequestMapping(value = "/add")
        public String add(Account account){
            //增加数据
            accountService.saveAccount(account);
            return "redirect:account/findAll";
        }
    }
    

    第4章:Spring整合MyBatis框架

    4.1 搭建和测试MyBatis的环境

    4.1.1 在web项目中编写SqlMapConfig.xml的配置文件,编写核心配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <environments default="mysql">
            <environment id="mysql">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://127.0.0.1:3306/spring5"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 使用的是注解 -->
        <mappers>
            <!-- <mapper class="cn.itcast.dao.AccountDao"/> -->
            <!-- 该包下所有的dao接口都可以使用 -->
            <package name="com.itheima.dao"/>
        </mappers>
    </configuration>
    
    4.1.2 在AccountDao接口的方法上添加注解,编写SQL语句
    package com.itheima.dao;
    import com.itheima.domain.Account;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import java.util.List;
    public interface AccountDao {
        /***
         * 保存账号
         * @param account
         */
        @Insert("insert into account(name,money)values(#{name},#{money})")
        int saveAccount(Account account);
    
        /***
         * 查询所有
         * @return
         */
        @Select("select * from account")
        List<Account> findAll();
    }
    
    4.1.3 编写测试的方法
    public class MyBatisTest {
    
        @Test
        public void testMyBatis() throws IOException {
            //获取SqlMapConfig.xml字节输入流
            InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
    
            //获取SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    
            //创建SqlSessionFactory
            SqlSessionFactory sqlSessionFactory = builder.build(is);
    
            //创建sqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession(true);
            AccountDao accountDao = sqlSession.getMapper(AccountDao.class);
    
            //查询所有
            List<Account> accounts = accountDao.findAll();
    
            for (Account account : accounts) {
                System.out.println(account);
            }
    
            //关闭资源
            sqlSession.close();
        }
    
    }
    

    4.2 Spring整合MyBatis框架

    4.2.1 目的:把SqlMapConfig.xml配置文件中的内容配置到spring.xml配置文件中
    <!-- 配置的连接池对象 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/spring5"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
    <!-- 配置SqlSession的工厂 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 配置扫描dao的包 -->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.itheima.dao"/>
    </bean>
    
    4.2.2 在service中注入dao对象,进行测试

    代码如下

    AccountDao代码:

    package com.itheima.dao;
    import com.itheima.domain.Account;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import java.util.List;
    public interface AccountDao {
        /***
         * 保存账号
         * @param account
         */
        @Insert("insert into account(name,money)values(#{name},#{money})")
        int saveAccount(Account account);
    
        /***
         * 查询所有
         * @return
         */
        @Select("select * from account")
        List<Account> findAll();
    }
    


    AccountServiceImpl代码:

    package com.itheima.service.impl;
    import com.itheima.dao.AccountDao;
    import com.itheima.domain.Account;
    import com.itheima.service.AccountService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import java.util.List;
    @Service
    public class AccountServiceImpl implements AccountService {
    


    @Autowired
    private AccountDao accountDao;

        @Override
        public void saveAccount(Account account) {
            int acount = accountDao.saveAccount(account);
        }
    
        @Override
        public List<Account> findAll() {
            return  accountDao.findAll();
        }
    }
    


    AccountController代码:

    package com.itheima.controller;
    import com.itheima.domain.Account;
    import com.itheima.service.AccountService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import java.util.List;
    @Controller
    @RequestMapping(value = "/account")
    public class AccountController {
    
        @Autowired
        private AccountService accountService;
    
        /***
         * 查询所有
         * @return
         */
        @RequestMapping(value = "/findAll")
        public String findAll(){
            //调用AccountService实现查询
            List<Account> accounts = accountService.findAll();
            return "list";
        }
    
        /***
         * 保存账号
         * @param account
         * @return
         */
        @RequestMapping(value = "/add")
        public String add(Account account){
            //增加数据
            accountService.saveAccount(account);
            return "redirect:/account/findAll";
        }
    }
    

    4.2.3 配置Spring的声明式事务管理

    在spring.xml中配置声明式事务:

    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 配置事务通知 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="find*" read-only="true"/>
            <tx:method name="*" isolation="DEFAULT"/>
        </tx:attributes>
    </tx:advice>
    
    <!-- 配置AOP增强事务 -->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(public * com.itheima.service.impl.*.*(..))"/>
    </aop:config>
    
    4.2.4 测试保存帐户的方法
    <form action="/account/add" method="post">
    	姓名:<input type="text" name="name"/><br/>
    	金额:<input type="text" name="money"/><br/>
    	<input type="submit" value="保存"/><br/>
    </form>	
    
    展开全文
  • SSM项目整合.rar

    2021-03-03 19:58:24
    一个非常简洁,又非常完备的SSM项目整合的Demo
  • SSM项目整合案例

    2018-08-24 15:17:14
    简单SSM项目整合,用SSM框架实现用户表的增,删,改 ,查,用到AOP面向切面事务,事务 , 以及事务通知,SpringMVC定时器 ,dataSource配置,注解。
  • SpringMVC和MyBatis项目SSM项目整合jar包
  • SSM项目整合代建源码

    2018-05-27 22:29:59
    SSM项目整合代建源码,方便日后代建SSM项目使用减少重复劳动。
  • ssm项目整合-demo.zip

    2019-11-26 09:14:19
    ssm项目整合+mybatis,实用demo;搭建项目,新手可用,实用;开发技术学习必备;
  • SSM项目整合带说明

    2014-07-22 11:54:01
    SSM项目整合,就只有最基本的增删查改,然后在项目里面有说明包括入口和SQL语句
  • SSM——SSM项目整合(一)原始整合方式通过Spring整合MyBatis补充/技巧 原始整合方式 基本步骤: ①准备数据库及数据表;②创建Maven工程;③导入Maven坐标;④编写实体类;⑤编写mapper接口;⑥编写service(业务层...

    原始整合方式

    基本步骤

    ①准备数据库及数据表;②创建Maven工程;③导入Maven坐标;④编写实体类;⑤编写mapper接口;⑥编写service(业务层)接口;⑦编写service接口实现;⑧编写controller;⑨编写或添加页面;⑩编写相应的配置文件;⑪运行测试

    总结

    实际上原始整合SSM项目就是利用MyBatis的相关API对MyBatis的配置文件、映射文件进行加载从而操作数据库;而Spring与SpringMVC通过web.xml进行串联,利用controller层的方法去调用业务层方法,在业务层中通过MyBatis相关API来链接MyBatis的核心配置文件,通过配置文件中的加载映射文件和映射文件相关接口去实现数据库的操作,然后再通过层层返回返回相关数据结果,最后显示在页面中。

    弊端

    ①每次在调用业务层方法时都会加载一次MyBatis核心配置文件且都会创建一个SqlSessionFactory

    ②每次都需要进行事务的提交和SqlSession的关闭操作。

    通过Spring整合MyBatis

    其实就是将service中的关于MyBatis的API的使用进行抽取,在Spring配置文件中进行配置,以此达到优化代码的目的。做法如下:

    Spring配置文件:

    <!--  加载外部资源文件  -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!--  配置数据源  -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--  配置sessionFactory  -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--加载MyBatis核心文件-->
        <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
    </bean>
    <!--  扫描mapper所在的包  -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.jclight.mapper"/>
    </bean>
    

    此时在业务层中使用注解注入mapper对象,然后在不同的业务方法中使用该mapper对象调用相应的方法即可。这样做可以减少MyBatis的核心配置文件的代码量,减少sqlSession工厂对象的创建次数,从而提高系统性能减少资源浪费。但这种只是解决了第一个弊端,还有一个弊端没有解决,所以针对该弊端我们可以使用Spring的事务控制进行处理,具体如下:

    Spring配置文件:

    <!--  配置声明式事务控制  -->
    <!--平台事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--  配置事务增强  -->
    <tx:advice id="txAdvice">
        <tx:attributes>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>
    <!--  配置事务的AOP织入  -->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.jclight.service.impl.*.*(..))"/>
    </aop:config>
    

    此时Spring框架就会帮助我们自动的完成事务控制,当我们进行多表操作时,配置事务控制能有效的避免数据库操作时出现的问题。例如:多表操作出现错误,但数据表中进行了更新操作等问题。

    补充/技巧

    1. 快速开发技巧:首先根据上述整合的基本步骤进行基础环境搭建,然后根据搭好的环境进行填充,最后测试即可。

    2. 在MyBatis核心配置文件中,定义别名的两种方式如下:

       <typeAliases>
           <typeAlias type="com.jclight.domain.Account" alias="account"/>
      </typeAliases>
      
      <typeAliases>
          <package name="com.jclight.domain"/>
      </typeAliases>
      

      第二种方式是针对某一个包下的所有接口进行自定义别名,这个别名为接口的名字或接口名字的首字母小写形式。

    3. 在MyBatis核心配置文件中,加载映射的两种方式如下:

      <mappers>
          <mapper resource="com\jclight\mapper\AccountMapper.xml"/>
      </mappers>
      
      <mappers>
           <package name="com.jclight.mapper"/>
      </mappers>
      

      第二种方式是针对放有映射文件的包下的全部映射文件,通过该标签进行全部加载,不需要配置多个mapper。

    4. 设置数据响应的乱码过滤器,这里在controller层下的注解中去实现。如下:

      @RequestMapping(value = "/save",produces = "text/html;charset=UTF-8")
      @ResponseBody
      public String save(Account account) {
          accountService.save(account);
          return "保存成功!";
      }
      
    展开全文
  • SSM项目整合所需配置及POM文件.zip
  • ssm项目整合

    2018-10-07 17:55:52
    ssm项目文件,整合了mybatis springmvc spring 并且里面还有百度编辑器
  • SSM项目整合——03事务配置

    上一篇:SSM项目整合——02整合action,service,dao三层架构
    下一篇:SSM项目整合——04删除与显示商品功能的实现

    SSM项目整合——03事务配置


    首先我们需要配置开启事务:在applicationContext.xml里面我们:

    <!--自动扫描Service-->
    <context:component-scan base-package="service"/>
    <!--配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--开启事务注解-->
    <tx:annotation-driven></tx:annotation-driven>
    

    如果对于这一块不懂得可以参见Spring系列教程——16Aop事务配置与注解事务配置
    ItemServiceImpl里面作如下修改:
    在这里插入图片描述
    ItemsControllerlist()方法修改如下:
    在这里插入图片描述

    Items items = new Items();
    items.setCreatetime(new Date());
    items.setDetail("我是最牛逼的");
    items.setName("华为荣耀");
    items.setPrice(new Float(7777.6));
    itemService.save0rUpdate(items);
    

    当前表内容:
    在这里插入图片描述
    接下来访问:http://localhost:8080/items/list.do
    如我们预期的那样:
    在这里插入图片描述
    我们发现没有插入,说明数据库事务配置生效了。
    在这里插入图片描述
    上一篇:SSM项目整合——02整合action,service,dao三层架构
    下一篇:SSM项目整合——04删除与显示商品功能的实现

    展开全文
  • SSM项目整合——09freemarker讲解

    上一篇:SSM项目整合——08页面展示缓存使用
    下一篇:SSM项目整合——10SpringMVC拦截器

    SSM项目整合——09freemarker讲解

    关于FreeMarker的介绍请参见:什么是 FreeMarker?。本节做一些简单的介绍即可,详细了解参见freeMarker详解
    在这里插入图片描述
    我们看上面这张原理图会发现我们设置的属性可以直接显示出来,其实freemaker这个模板引擎与jsp是出于同一地位的(在作用方面)。
    springmvc.xml里面配置视图解析器(把我们前面设置的视图解析器删除掉)。

       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="2048000"/>
        </bean>
        <!-- 配置freemarker -->
        <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
            <property name="templateLoaderPath" value="/WEB-INF/views" />
            <property name="defaultEncoding" value="UTF-8"></property>
        </bean>
    

    我们将list.jsp的改为list.ftl:

    <html>
    <head>
        <title>商品展示</title>
    </head>
    <body>
    <table border="5" cellspacing="0" cellpadding="0">
        <thead>
            <th>id</th>
            <th>name</th>
            <th>price</th>
            <th>detail</th>
            <th>createtime</th>
        </thead>
        <tbody>
            <#list allItems as items>
                <tr>
    				<td align="center">${items.id}</td>
    		         <td align="center">${items.name}</td>
    		         <td align="center">${items.price}</td>
    		         <td align="center">${items.detail}</td>
    		         <td align="center">${items.createtime}</td>
    		         <td><a href="/items/delete.do?id=${items.id}"/>删除</td>
    		         <td><a href="/items/edit.do?id=${items.id}">编辑</a></td>
                </tr>
            </#list>
        </tbody>
    </table>
    </body>
    </html>
    

    访问:http://localhost:8080/items/list.do
    在这里插入图片描述
    发现报错,显示出现编译错误,这是由于createtime无法转为string的缘由,解决如下:
    在这里插入图片描述
    在这里插入图片描述
    还有另外一个模板引擎:https://www.thymeleaf.org/
    上一篇:SSM项目整合——08页面展示缓存使用
    下一篇:SSM项目整合——10SpringMVC拦截器

    展开全文
  • ssm项目整合的后台管理系统的小练习,java语言编程,oracle数据库,整合mabits,springmvc框架

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,328
精华内容 3,331
关键字:

ssm项目整合