spring05-SSM集成

SSM集成作用及本质

作用:在框架上基础上开发,发挥各个框架在各层的好处,提高开发效率。

本质:

  1. Spring去集成Spring MVC和MyBatis,即控制器对象、业务对象、Mapper对象等都交由Spring容器管理,使用Spring IoC和DI来完成对象创建及其属性注入;
  2. 使用 AOP 来配置事务;
  3. 使用 Spring MVC 处理请求和响应。

集成两个步骤

  1. Spring 集成 MyBatis(applicationContext.xml)
    1. 配置数据源
    2. 配置 SqlSessionFactory
    3. 配置 Mapper 接口实现类对象(批量)
    4. 配置 Servcie 接口实现类对象
    5. 配置事务(XML或注解)
  2. 加入 Spring MVC
    1. 配置前端控制器和编码过滤器,指定启动 Spring 容器加载的配置文件 (mvc.xml)
    2. 配置扫描控制器
    3. 配置 MVC 注解解析器
    4. 配置视图解析器(静态处理, 上传解析器, 拦截器)

MyBatis 逆向工程

一个Maven插件,可以提高开发效率, 可以根据表生产实体类 Mapper 接口 Mapper XML

使用

  1. 建表

  2. 在pom.xml引入插件,在项目中resources目录中配置文件generatorConfig.xml;

    <?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="mysql" defaultModelType="hierarchical"
    			 targetRuntime="MyBatis3Simple">
    
    		<!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
    		<property name="autoDelimitKeywords" value="false" />
    		<!-- 生成的Java文件的编码 -->
    		<property name="javaFileEncoding" value="UTF-8" />
    		<!-- 格式化java代码 -->
    		<property name="javaFormatter"
    				  value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
    		<!-- 格式化XML代码 -->
    		<property name="xmlFormatter"
    				  value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />
    
    		<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
    		<property name="beginningDelimiter" value="`" />
    		<property name="endingDelimiter" value="`" />
    
    		<commentGenerator>
    			<property name="suppressDate" value="true" />
    			<property name="suppressAllComments" value="true" />
    		</commentGenerator>
    
    		<!-- 必须要有的,使用这个配置链接数据库 @TODO:是否可以扩展 -->
    		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
    						connectionURL="jdbc:mysql:///ssm" userId="root" password="admin">
    			<!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
    		</jdbcConnection>
    
    		<!-- java类型处理器 用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl; 注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 
    			NUMERIC数据类型; -->
    		<javaTypeResolver
    				type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
    			<!-- true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型 false:默认, scale>0;length>18:使用BigDecimal; 
    				scale=0;length[10,18]:使用Long; scale=0;length[5,9]:使用Integer; scale=0;length<5:使用Short; -->
    			<property name="forceBigDecimals" value="false" />
    		</javaTypeResolver>
    
    
    		<!-- java模型创建器,是必须要的元素 负责:1,key类(见context的defaultModelType);2,java类;3,查询类 
    			targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制; targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录 -->
    		<javaModelGenerator targetPackage="cn.wolfcode.domain"
    							targetProject="src/main/java">
    			<!-- for MyBatis3/MyBatis3Simple 自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter; -->
    			<property name="constructorBased" value="false" />
    
    			<!-- for MyBatis3 / MyBatis3Simple 是否创建一个不可变的类,如果为true, 那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类 -->
    			<property name="immutable" value="false" />
    
    			<!-- 设置是否在getter方法中,对String类型字段调用trim()方法
    			<property name="trimStrings" value="true" /> -->
    		</javaModelGenerator>
    
    		<!-- 生成SQL map的XML文件生成器, 注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
    			或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
    			targetPackage/targetProject:同javaModelGenerator -->
    		<sqlMapGenerator targetPackage="cn.wolfcode.mapper"
    						 targetProject="src/main/resources">
    			<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
    			<property name="enableSubPackages" value="true" />
    		</sqlMapGenerator>
    
    
    		<!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口 targetPackage/targetProject:同javaModelGenerator
    			type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下): 1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
    			2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中; 3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
    			注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER -->
    		<javaClientGenerator targetPackage="cn.wolfcode.mapper"
    							 type="XMLMAPPER" targetProject="src/main/java">
    			<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
    			<property name="enableSubPackages" value="true" />
    
    			<!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查 <property name="rootInterface"
    				value=""/> -->
    		</javaClientGenerator>
    
    		<table tableName="employee">
    			<property name="useActualColumnNames" value="true"/>
    			<property name="constructorBased" value="false" />
    			<generatedKey column="id" sqlStatement="JDBC" />
    		</table>
    	</context>
    </generatorConfiguration>
    
  3. 在generatorConfig.xml配置数据库连接、配置表等等;

  4. 执行命令mybatis-generator:generate。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小云很优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值