SSM整合搭建(二)

本页来衔接上一页继续来搭建SSM,再提一下大家如果不详细可以再去看视频哦,B站就有

之后我们来配置SpringMVC的配置文件,主要是配置跳转的逻辑

先扫描所有的业务逻辑组件

我们要用SpringMVC去扫描包 那么就应该先去建立包

我们给SpringMVC设置扫描仅仅是Controller的包  并且禁止默认

    <!-- SpringMVC的配置文件,包含网站跳转逻辑的控制,配置 -->
    <context:component-scan base-package="com.atguigu" 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/views/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

设置两个标准配置

首先第一个是配置一个如果有SpringMVC不能处理的请求则交给tomcat  这样就能让动态静态资源都返回成功

第二个是能使用Springmvc的一些高级功能

    <!-- 设置两个标准配置  -->
    <!-- 将SpringMVC不能处理的请求交给tomcat  这样就能让动态静态资源都能返回成功 -->
    <mvc:default-servlet-handler/>
    <!-- 能支持springmvc更高级的一些功能,JSR303校验 快捷的ajax请求等等 -->
    <mvc:annotation-driven/>

接下来就是来配置Spring的配置文件

首先先配置数据源

因为这些数据都不是写死的 我们需要新建一个properties存储数据

在resources下创建一个dbconfig 存储配置数据

这是我的配置 为了不跟别的混乱 我们跟这个数据库有关的都加上jdbc前缀

写好之后我们需要外部引入dbconfig。这时候就需要context标签

然后我们就将dbconfig引入并填充到之前的数据源中

    <!--Spring的配置文件,这里主要配置和业务逻辑有关的  -->
    <!--数据源 事务控制等核心  -->
    <context:property-placeholder location="classpath:dbconfig.properties"/>
    <!-- 配置数据源 -->
    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClass" value="${jdbc.driverClass}"></property>
        <property name="user" value="${jdbc.user}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

然后我们配置和SpringMVC一样的扫描包 这次就扫描除了controller的就行

    <context:component-scan base-package="com.atguigu">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

配置好数据源后 我们需要开始配置和mybatis的整合

    <!-- 配置和mybatis的整合 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 指定mybatis全局配置文件的位置 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>

所以我们也先创建mybatis的配置文件 在resources建立 mybatis-config.xml  图片有点糊

配置文件的内容以后再填充

之后还需要导入数据源和引用mapper.xml的文件 所以我们先创建一个mapper的文件夹 在resources下

这就是完整的和mybatis整合

    <!-- 配置和mybatis的整合 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 指定mybatis全局配置文件的位置 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
        <!-- 配置数据源 -->
        <property name="dataSource" ref="pooledDataSource"></property>
        <!-- 指定mybatis的mapper文件的位置 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
    </bean>

因为我们配置了mapper.xml的文件,但是接口Dao类还没有放入IOC容器中

所以我们需要再将dao放到IOC容器中

<!-- 配置扫描器,将mybatis接口的实现加入到ioc容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--扫描所有dao接口的实现 加入到ioc容器中  -->
        <property name="basePackage" value="com.atguigu.crud.dao"></property>
    </bean>

以上就是跟mybatis的整合。

之后我们来进行事务控制的配置  由事务管理器控制住数据源

<!-- 事务控制的配置 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 控制住数据源 -->
        <property name="dataSource" ref="pooledDataSource"></property>
    </bean>

之后我们要开始事务,可以基于注解也可以基于xml  将tx 和 aop都勾上

然后编写切入点表达式 ,并且配置事务增强。

并设置不同的请求方法所进行不同的操作。具体看注释

    <!-- 事务控制的配置 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 控制住数据源 -->
        <property name="dataSource" ref="pooledDataSource"></property>
    </bean>

    <!-- 开启基于注解的事务,使用xml配置形式的事务(必要主要的都是使用配置模式) -->
    <aop:config>
        <!-- 切入点表达式 表示service包下所有的东西都接入事务 并且参数任意多-->
        <aop:pointcut expression="execution(* com.atguigu.crud.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="*"/>
            <!-- 以get开始的所有方法 -->        <!-- 每一个get开始的方法都是只读-->
            <tx:method name="get*" read-only="true"/>
        </tx:attributes>
    </tx:advice>

切入点表达式的意思是哪些方法需要进行事务的控制。然后当切入事务以后该怎么做,就看事务增强配置的get还是所有方法所进行的操作了

事务增强和事务的配置式通过transaction-manager进行映射,默认值是transactionManager 如果大家修改了事务控制的配置 记得一定要修改这里 (从尚硅谷那个老师借鉴而来)

之后我们可以来配置Mybatis的基本设置,逆向工程等

Mybatis的很多固定的语句可以在官方文档直接复制使用https://mybatis.org/mybatis-3/getting-started.html

这一块是在官方文档的Getting Started 进入就可以找到

首先我们先导入mybatis的全局文件,导入了这个才可以开启使用mybatis的语句。

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

 <configuration>

 </configuration>

然后我们可以在配置文件中setting一些文件

可以设置驼峰命名 便于数据库查出来直接与bean包对应 以及起别名方便使用

<configuration>
     <settings>
         <!-- 驼峰命名 -->
         <setting name="mapUnderscoreToCamelCase" value="true"/>
     </settings>
     <typeAliases>
         <!-- 起别名 -->
         <package name="com.atguigu.crud.bean"/>
     </typeAliases>

 </configuration>

然后设置好Mybatis后我们需要去创建表 创建一个emp表和dept表

CREATE TABLE `tbl_dept` (
  `dept_id` int(11) NOT NULL AUTO_INCREMENT,
  `dept_name` varchar(255) NOT NULL,
  PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
CREATE TABLE `tbl_emp` (
  `emp_id` int(11) NOT NULL AUTO_INCREMENT,
  `emp_name` varchar(255) NOT NULL,
  `gender` char(1) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `d_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`emp_id`),
  KEY `fk_emp_dept` (`d_id`),
  CONSTRAINT `fk_emp_dept` FOREIGN KEY (`d_id`) REFERENCES `tbl_dept` (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8

并设置1两条数据

当表设置好以后,我们可以通过mybatis的逆向工程来创建对应的bean和对应的dao信息以及mapper信息。 逆向工程的网址:http://mybatis.org/generator/

可以在网址的Quick Start Guide 中进行配置

这里我们需要引入逆向工程的jar包

<!-- 逆向工程jar包  MBG -->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.5</version>
</dependency>

然后导入后需要建立MGB的xml文件 我们在ssm-crud的目录下建立xml文件 (这里我的名字错了 大家别模仿)

取名为mgb.xml

然后将以下配置的内容都放上去  配置的地址是在

http://mybatis.org/generator/

<?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>
  <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />

  <context id="DB2Tables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
        connectionURL="jdbc:db2:TEST"
        userId="db2admin"
        password="db2admin">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <javaModelGenerator targetPackage="test.model" targetProject="\MBGTestProject\src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <sqlMapGenerator targetPackage="test.xml"  targetProject="\MBGTestProject\src">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao"  targetProject="\MBGTestProject\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" >
      <property name="useActualColumnNames" value="true"/>
      <generatedKey column="ID" sqlStatement="DB2" identity="true" />
      <columnOverride column="DATE_FIELD" property="startDate" />
      <ignoreColumn column="FRED" />
      <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
    </table>

  </context>
</generatorConfiguration>

首先我们将开头的  <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />

这一行删除

然后我们需要将数据源的连接替换成我们自己的

然后修改我们的bean包生成的位置

    <!-- 指定javaBean生成的位置 -->
    <!-- targetPackage:生成包的位置 -->
    <!--  targetProject:生成的工程的位置 -->
    <javaModelGenerator targetPackage="com.atguigu.crud.bean"
    targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

然后需要指定我们的sql生成位置的映射

    <!-- 指定sql映射文件生成的位置 -->
    <sqlMapGenerator targetPackage="mapper"
    targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

之后再指定dao接口生成的位置

    <!-- 指定dao接口生成的位置,mapper接口 -->
    <javaClientGenerator type="XMLMAPPER"
    targetPackage="com.atguigu.crud.dao"  targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

最后的table指定每个表的生成策略。我们替换原内容 表示数据库表和bean的对应

<!-- table指定每个表的生成策略 -->
    <table tableName="tbl_emp" domainObjectName="Employee"></table>
    <table tableName="tbl_dept" domainObjectName="Department"></table>

想要方便的可以直接看这里 复制进去改一改就行

<?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">
      <!-- 配置数据库连接 -->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/ssm_crud"
        userId="root"
        password="root">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- 指定javaBean生成的位置 -->
    <!-- targetPackage:生成包的位置 -->
    <!--  targetProject:生成的工程的位置 -->
    <javaModelGenerator targetPackage="com.atguigu.crud.bean"
    targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- 指定sql映射文件生成的位置 -->
    <sqlMapGenerator targetPackage="mapper"
    targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- 指定dao接口生成的位置,mapper接口 -->
    <javaClientGenerator type="XMLMAPPER"
    targetPackage="com.atguigu.crud.dao"  targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- table指定每个表的生成策略 -->
    <table tableName="tbl_emp" domainObjectName="Employee"></table>
    <table tableName="tbl_dept" domainObjectName="Department"></table>
  </context>
</generatorConfiguration>

接下来我们生成就可以了。首先我们在test文件下生成一个MGB的java文件

package com.atguigu.crud.test;

import java.io.File;
import java.io.IOException;
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.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class MGB {
    public static void main(String[] args) throws Exception {
           List<String> warnings = new ArrayList<String>();
           boolean overwrite = true;
           File configFile = new File("mgb.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);
    }
}

主要是将File(“mgb.xml”) 改成刚才设置的文件就ok了  然后我们直接main方法运行

然后刷新一下 就发现东西都有了

OK,第二期就到这里,剩下的内容会尽快上传

原文地址:https://www.cnblogs.com/chengzhangriji/p/12545308.html

时间: 2024-10-07 21:01:40

SSM整合搭建(二)的相关文章

ssm整合总结(二)--第二步之整合sping,sping mvc,bootstrap

说明:本文内容来自山硅谷,整合了任务5--任务8的内容http://www.gulixueyuan.com/my/course/50 本文是继https://www.cnblogs.com/alpsong/p/10059698.html的基础上来加入sping,spring mvc,bootstrap配置 1引入Bootstrap 1.1进入bootstrap官网         1.2使用bootstrap                   1.2.1helloworld          

SSM整合(二)(mybatis逆向工程)

mybatis generator    http://www.mybatis.org/generator/ 1.首先要引用jar包 <!-- MyBatis Generator Core--> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator&

SSM框架——整合搭建流程

本文是作者在看完 http://blog.csdn.net/zhshulin/article/details/37956105/ 之后自己搭建的流程: 1.首先创建maven工程,使用哪种方式进行创建都可以,可以参考博主之前的文章: <两种方式创建Maven项目[方式二]><两种方式创建Maven项目[方式一]> 2.先看看搭建最终搭建完成后的项目结构: 3.搭建流程: 数据库使用的是:mysql ide使用的是:eclipse[Version: Neon.2 Release (4

SSM框架搭建(二) 创建MAVEN项目

SSM框架搭建(一) JDK和MAVEN环境搭建 SSM框架搭建(二) 创建MAVEN项目 一:创建Maven 项目 注意选择是webapp的哪一个 我创建的默认JRE是1.5的,所以需要修改一下 选中项目,alt+enter(等于右键Properties) 1:修改java Bulid Path 2:修改java Compiler,改为自己的电脑最高版本jdk 3:修改 Project Facets,改为自己的电脑最高版本jdk 4:Dynamic Web Module,应该改为3.0的但是我

ssm 整合(方案二 maven)

通过maven来整合ssm方便很多,至少不用去找jar包 具体架构如下: 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

实习小结(二)---SSM框架搭建

SSM项目框架搭建 前几天做了一个学生信息管理的项目,使用纯控制台输入,查询数据库,将信息在控制台中打印,功能完善得差不多之后,老师让将这个项目移植到Web中,使用Spring+SpringMVC+MyBatis将项目做成网页,借此机会熟悉一下SSM框架的搭建流程. 项目的目录结构如下: SSM框架搭建流程: 1.项目所需要的jar包 图片中的jar包可能一些多于的包,另外在开发中遇到没有导入的包的时候再去下载 2.配置文件 (1)web.xml <?xml version="1.0&qu

ssm框架搭建整合测试

下载各种jar包 mybatis下载 https://github.com/mybatis/mybatis-3/releases mysql驱动下载 http://mvnrepository.com/artifact/mysql/mysql-connector-java spring下载(spring所用到的所有jar包,包括springmvc) http://repo.spring.io/release/org/springframework/spring/ 配合spring使用的工具类收录(

SpringMVC笔记——SSM框架搭建简单实例

落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧. 实例 第一步——导包 Spring框架包及其依赖包 MyBatis框架包及其依赖包 MyBatis-EhCache架包 C3P0架包 MySql数据库驱动包 项目架包如下: 项目结构如

重磅回归-SSM整合进阶项目实战之个人博客系统

历经一个多月的重新设计,需求分析以及前后端开发,终于有了一定的输出:我自己实现的spring4+springmvc+mybatis3整合的进阶项目实战-个人博客系统 已然完成了,系统采用mvc三层模式进行整体的开发,涉及到技术一下子很难全部列出,其中不得不提的有:整合shiro实现登录安全认证,整合lucene实现全文信息检索,基于Spring的事件驱动模型实现业务服务模块之间的异步解耦(在RabbitMQ视频教程中我也会重提这个技术点!),爬虫框架Jsoup解析html文本中的图片,整合ued