发表于: 2016-09-19 10:32:57
2 2280
今天完成的事情:完成了spring和mybatis的整合。整合过程:
一、整体流程:
a. 建立数据库
b. 配置maven项目的pom.xml
c. 建立po类Student.java
d. po类对应的StudentDao接口
e. mapper.xml配置sql语句
f. SqlMapConfig.xml配置
g. WEB-INF下的ApplicationContext.xml配置
h. web.xml文件配置
i. 实现类StudentDao的实现
j. 编写测试类
注:文档结构图如下:
1.1 applicationContext的配置:
1.数据源dataSource(包括driverClassName,url,username,password)
2.事务管理transactionManager
3.从spring中获得bean容器,
4.配置原始Dao的配置文件
5.配置代理Mapper开发的配置文件
1.2 SqlMapConfig.xml
配置mapper.xml文件路径
1.3 web.xml配置
1.4 mapper代理的不同点
首先,namespace的命名。
a.原始的dao的实现类
可以用test.+方法名来调用方法,test代指studentDao,调用studentDao接口里面的方法
这里的SelectOne用来和findStudentByID相对应(查询),insert和insert()方法相对应
b.mapper代理的接口写完直接写test类
往student里面传值
4.5注解开发
注解开发需要配置文件+接口+测试类即可
问题:1.spring注解开发SqlMapConfig.xml为什么不需要在里面配置路径?
2.在直接调整Dynamic web2.3变成2.5/3.0/3.1的时会提示cannot change version of project facet dynamic web module to 2.5/3.0/3.1,如何解决?
3.报错:org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
这个是读取配置文件的代码:
问题的答案:
1.注解开发把sql语句直接写在了接口里面,而SqlMapConfig.xml的作用是扫描到mapper.xml文件,所以就不需要了
2:eclipse的解决方法:Window > Show View > Other > General调出navigator视图,找到对应的项目,找到.setting文件夹下的org.eclipse.wst.common.project.facet.core.xml这个文件,把 <installed facet="jst.web" version="2.3"/>的2.3改成需要的版本。另外,这个问题出现的原因很可能是因为jdk的版本问题,建议在pom.xml里直接设置好jdk的版本。
3.原因:路径写错了,正确的路径应为:spring/applicationContext.xml,即要从sourceFile底下开始算,子文件夹都要写。
评论