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
这个时候就只会获得同一个容器了。