SSM整合小案例

SSM(Spring+SpringMVC+Mybatis)

    一、添加jar包

            ①直接添加

                目前整合所用到的jar包:

                        aspectjweaver-1.8.9.jar
        c3p0-0.9.1.jar
        commons-logging-1.2.jar
        jackson-annotations-2.8.0.jar
        jackson-core-2.8.8.jar
        jackson-databind-2.8.8.jar
        jsqlparser-0.9.5.jar
        jstl-1.2.jar
        mybatis-3.4.2.jar
        mybatis-generator-core-1.3.5.jar
        mybatis-spring-1.3.1.jar
        mysql-connector-java-5.1.41.jar
        pagehelper-5.0.0.jar
        spring-aop-4.3.7.RELEASE.jar
        spring-aspects-4.3.7.RELEASE.jar
        spring-beans-4.3.7.RELEASE.jar
        spring-context-4.3.7.RELEASE.jar
        spring-core-4.3.7.RELEASE.jar
        spring-expression-4.3.7.RELEASE.jar
        spring-jdbc-4.3.7.RELEASE.jar
        spring-tx-4.3.7.RELEASE.jar
        spring-web-4.3.7.RELEASE.jar

        spring-webmvc-4.3.7.RELEASE.jar

SSM整合小案例

            ②Maven方式添加:pom.xml

                <dependencies>
<!-- 引入pageHelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>

</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>

<!-- Spring JDBC -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>

</dependency>

<!-- Spring面向切面编程 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.7.RELEASE</version>

</dependency>

<!-- Spring 的单元测试 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
<scope>test</scope>
</dependency>

<!-- MyBaits -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>

<!-- MyBatis整合Spring的适配包 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>

<!--数据库连接池、驱动 -->
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1</version>

</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>

</dependency>

<!-- jstl、junit、servlet-api -->
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>

</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>

</dependency>

<!-- MyBatis****需要的jar包 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>

</dependency>

<!-- Input Jackson -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
</dependencies>

二、配置文件

                数据库相关信息:dbconfig.properties

                        jdbc.driver=com.mysql.jdbc.Driver
                        jdbc.url=jdbc:mysql://192.168.233.128:3306/mybatis
                        jdbc.username=root
                        jdbc.password=*********

                        #jdbc.driver=oracle.jdbc.OracleDriver
                        #jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
                        #jdbc.username=scott

                        #jdbc.password=scott

SSM整合小案例

               mybatis的配置文件:mybatis-config.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>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<package name="com.hz.mybatis.bean"/>
</typeAliases>
<plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--调整分页合理化-->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>
</configuration>

SSM整合小案例


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>mybatis_configure</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- springMVC -->
  <servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

SSM整合小案例

web.xml没有配置字符编码过滤器,需要自己添加

SpringMVC的配置:dispatcherServlet-servlet.xml

【注:当wen.xml不指定springmvc配置文件位置的时候,可以用这种方式来进行配置(servlet名-servlet.xml)】

SSM整合小案例

<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.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.0.xsd">
<!-- 扫描包,只扫描控制器 -->
<context:component-scan base-package="com.hz.mybatis" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

</beans>


SSM整合小案例

spring的配置文件: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"
xmlns:tx="http://www.springframework.org/schema/tx"
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.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 引入属性文件 -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<!-- 扫描包,去除控制器 -->
<context:component-scan base-package="com.hz.mybatis">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="driverClass" value="${jdbc.driver}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 事物控制 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置和Mybatis的整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定mybatis的全局配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="dataSource" ref="dataSource"/>
<!-- 指定mapper文件的位置 -->
<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
</bean>
<!-- 配置扫描器,将mybatis接口的实现类加入到IOC容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.hz.mybatis.dao"/>
</bean>
<!-- 开启注解,使用配置方式 -->
<aop:config>
<aop:pointcut expression="execution(* com.hz.mybatis.service..*(..))" id="txPoint"/>
<!-- 配置事物增强 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<!-- 配置事物增强,事物如何切入 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置一个可以执行批量的sqlSession -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
<constructor-arg name="executorType" value="BATCH" />
</bean>

</beans>

SSM整合小案例

SSM整合小案例

mybatis的****配置:MBG.xml

官网:http://www.mybatis.org/mybatis-3/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <context id="DB2Tables" targetRuntime="MyBatis3">
  <commentGenerator>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
  <!-- 指定如何连接到目标数据库 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://192.168.233.128:3306/mybatis"
        userId="root"
        password="koonisession97">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
<!-- 指定javaBean生成的位置 -->
    <javaModelGenerator targetPackage="com.hz.mybatis.bean" 
    targetProject=".\src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
<!-- SQL映射文件生成位置 -->
    <sqlMapGenerator targetPackage="mybatis.mapper"  
    targetProject=".\conf">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
<!-- mapper接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.hz.mybatis.dao"  
      targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!--table指定每个表生成策略-->
     <table tableName="tbl_info" domainObjectName="TblInfo"></table>
  </context>

</generatorConfiguration>

****代码:TestMBG.java

官网:http://www.mybatis.org/generator

package com.hz.mybatis.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class TestMBG {
public static void main(String[] args) throws Exception {
  List<String> warnings = new ArrayList<String>();
   boolean overwrite = true;
   File configFile = new File("mybatis-generator.xml");
   ConfigurationParser cp = new ConfigurationParser(warnings);
   Configuration config = cp.parseConfiguration(configFile);
   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
   myBatisGenerator.generate(null);
}

}

SSM整合小案例

到此配置文件就编写完成,接下来进行测试:

SSM整合小案例


SSM整合小案例

JSP页面:

SSM整合小案例

效果:

SSM整合小案例

点击:显示数据

SSM整合小案例

点击:清除数据

SSM整合小案例

over~~~