实习之后都是在别人搭配好环境的情况下进行一些业务的编写,脑袋已经不记得如何搭建一个ssm项目的,所以周末有空补了一下。
首先新建一个test数据库,并且在里面插入三条数据。如图下
编写一个User Bean类:
编写Mapper.xml
然后编写mybatis-config.xml配置文件:
然后在Spring的配置文件里面配好相关的bean,这里的思路是用DriverManager是spring提供的org.springframework.jdbc.datasource.DriverManagerDataSource,而不是用jdk提供的DriverManager。然后把drivermanager作为数据源DataSource配置进去工厂类org.mybatis.spring.SqlSessionFactoryBean,然后session用的是工厂提供的模板session,整个配置文件如下:
然后编写Serivce类:
最后 编写控制类:
最后完成mvc配置文件的配置,这里一定要配置
<annotation-driven></annotation-driven>
<default-servlet-handler/>
<context:component-scan base-package="com.kjw.learn" />
<beans:bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/" />
<beans:property name="suffix" value=".html" />
</beans:bean>
这四个元素,他们分别有不同的作用:
第一个是用来完成controller注解功能的配置
第二个是用来配置请求分发的一些配置
第三个是用来扫描bean的
第四个是用来配置试图的
文件截图:
最后运行结果如下:
问题总结:
问题一:一开始是找不到Mapper文件,原因是路径问题,我放在了WEB-INF文件下,然后就怎么也找不到mapper文件,后来用的是把他放在classpath的目录下,用classpath:xxx解决了问题。
问题二:就是访问的时候找不到控制器里面对应的方法问题,最终解决办法是把mvc配置文件里面四个元素都加上。原因大致是Handler的问题,不同的配置会导致Spring使用不同的Handler,有些handler功能不全所以导致找不到对应url里面的方法。
问题三:这里用的配置数据源的方法是springdatamanager------>mybatis的工厂类SqlSessionFactoryBean---->mybatis的session模板类SqlSessionTemplate来完成Dao,最后直接在Service里面使用SqlSessionTemplate作为Dao.
还有其他方式配置数据源的例如Mapper扫描。这个下次再作实验