SSM框架整合
1.使用mysql数据库,要求5.5版本以上
2.Mybatis逆向工程:根据表结构,自动生成pojo和dao接口及映射文件
逆向工程自动生成代码
先把文件导入到工程里面,不是maven工程,选择Genaral
在反向生成里都生成什么内容?
根据数据库里面的表反向生成pojo(实体类bean)和dao,dao里面放mybatis中接口和映射文件
generatorConfig.xml文件
①既然是通过数据库中的表反向生成,首先配置数据库连接
②要将数据库中的表反向生成一个pojo,那么要告诉它,我要将pojo放在哪个包中
映射文件的位置
接口的位置
③逆向生成代码,只需要运行main方法就行了
控制台报错了,应该是mysql没启动,因为它是根据数据库中的表生成代码,没启数据库肯定是不行的
启动服务,再Run as,运行成功,刷新看一下。
pojo里面就是我们表中的实体类,dao里面有两部分,大把大把的接口和映射文件。
接口和映射文件放在一个包下,同时保证名称是一致的,这样可以使用包扫描机制,同时扫描。
既然Run as就能自动生成代码,如果再运行一次呢?
运行没有报警告,刷新文件也没有多生成出来包,看了下里面的代码行数也是没变化,为了以防后续出问题,我选择删了重新Run as一遍。
这些生成的代码,只是存在generatorSqlmap文件中,并没有存在Maven项目中,复制粘贴到对应包的src/main/java中,end
搭建环境,整合项目
使用的是soa架构(面向服务对象的架构)分两层。
taotao-manager是一个服务层项目,访问数据库,产生数据为表现层服务。
taotao-manager-web是一个表现层的web项目,只和页面进行交互
Dao层:配置mtbatis相关的配置,数据库、数据源
mybatis虽然是dao层的配置,但是taotao-manager-dao最终被打成了jar包,可以将mybatis配置在service里面
数据文件db.properties
接下来是application-dao.xml。之前dao层需要依赖的jar包是mybatis,数据源,连接池
spring管理SqlSessionFactory,目的创建sqlsessionfactory(?)
扫描mybatis配置文件的方式有三种通过接口扫描,类扫描,包扫描。
通过包扫描的话,需要包里面的接口名和配置文件名需要保持一致
配置application-service.xml
exclude-filter:过滤掉controller
dubbo服务最后再写。
接下来是application-trans.xml
当前项目中的方法,以红框里的名字开头事务就会开启(增删改)。而下面的查询就不需要依赖事务,只读。
当前的方法作用于哪些包、类。当前包下面的所有类(*)的方法(*)不管有没有参数(..)都会被匹配到事务规则。
taotao-manager-service里面的web.xml配置sping监听器为表现层做服务。
<context-param>指定sping的配置路径
编码集过滤器和前端控制器是处理前端请求应该放在taotao-manager-web中的web.xml中
spring开启一个父容器,springmvc开启子容器。当配置前端控制器的时候会默认开启一个子容器。
子容器能访问父容器的一部分bean,但是父容器不能访问子容器的bean。
所以,在子容器中只扫描controller,父容器扫描controller之外的其他注解
最后配置springmvc文件
ssm框架整合完毕