6/19 Spring-mybatis 框架整合使用、通过Spring-mybatis 框架整合 配置Servlet、设置监听器防止容器重复创建

Spring-mybatis 整合

首先导入mybatis和spring已经连接数据库需要的jar包(这里使用的是c3p0)
25个包
在这里插入图片描述
部署到程序中,建立如下包
在这里插入图片描述

实体类
在这里插入图片描述

dao层接口
在这里插入图片描述
dao层配置文件,有了这个配置文件就不需要实现类了。
在这里插入图片描述
配置总配置文件:

这里使用sqlSessionFactory工厂来根据用户配置的bean的内容自动产生对象,ctrl+shift+t查找工厂的源代码
在这里插入图片描述
发现没有导入源代码,导入
在这里插入图片描述
拷贝路径
在这里插入图片描述
现在来配置工厂需要的参数,首先进入工厂方法源码, ctrl+o 查找
在这里插入图片描述
工厂配置成功。
在这里插入图片描述

接下来 配置studentDao

由于bean这里是由上面的工厂产生的,所以 查找MapperFactoryBean. 查看源码。给studentDao配置路径
在这里插入图片描述
拷贝路径
在这里插入图片描述

寻找MapperFactoryBean 需要的参数(删掉泛型)
在这里插入图片描述
给这个参数 指定dao接口所在的包。

在这里插入图片描述
现在需要dao接口的第二个参数
由于在MapperFactoryBean里面找不到(有关setfactory之类的方法)。去父类找
在这里插入图片描述
父类找到了这个方法。
在这里插入图片描述
在这里插入图片描述
这时就找到了第二个参数。
在这里插入图片描述

配置成功,测试
在这里插入图片描述
测试成功,成功插入数据。

但是这种配置方式,每写一个dao都要配置一次,再以后遇到多dao的情况很麻烦。
所以这里引入了指定包动态扫描,设置好dao所在的包名即可。注意,dao接口的名字一定不要加 “i”

扫描。查询scanner类似的 如下图
在这里插入图片描述
进入源码,查询参数。
在这里插入图片描述
在这里插入图片描述
第二个参数
在这里插入图片描述
这个时候发现有两个,分别点进入看, 发现第一个已经过时在这里插入图片描述
点进第二个。如下图描述
在这里插入图片描述
在这里插入图片描述
配置成功,执行测试,测试成功。

现在来配置业务层

业务层接口:
在这里插入图片描述

业务层实现类:
在这里插入图片描述

配置:
在这里插入图片描述
测试:
在这里插入图片描述

测试成功。


通过Spring-mybatis 框架整合 配置Servlet

和上面操作基本一样,创建一个dymanic项目(加入了页面)
在这里插入图片描述

拷入对应位置,新建servlet
在这里插入图片描述

Servlet配置和service的测试类基本一样
在这里插入图片描述
访问这个servlet就实现了功能
在这里插入图片描述


当把这个ac输出的时候,发现
这个容器,每次访问这个页面都会重新创建一个。
在这里插入图片描述

现在需要配置一个监听器,用于监听这个活动,创建了一次就不再创建了。
监听器的作用:web容器存储到ServletContext域中,每次获取容器,从ServletContext中获取,
保证每次访问都使用同一个容器

在这里插入图片描述
在这里插入图片描述
拷贝路径,配置监听器
在这里插入图片描述
现在重新加载服务器,发现会报错
在这里插入图片描述
是因为
在这里插入图片描述
在这里插入图片描述
在web。xml里面配置
在这里插入图片描述
现在换一种获得ac的方法,通过监听器 把容器 存在域中
在这里插入图片描述

在这里插入图片描述
进入这个方法,寻找参数
在这里插入图片描述
这个就是需要的参数。
在这里插入图片描述
以后就可以去这个域里面去取这个容器了。
在这里插入图片描述

重启服务器,访问servlet
这个时候就只会获得同一个容器了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值