发表于: 2018-04-09 22:43:45

1 647


今天完成的事情
好几天日报没写了,期间强化了一些mybatis和Spring的知识点,最终目的是实现使用Spring+mybatis来完成数据库操作的实例。下面是完成整个实例的过程
配置数据源和事务管理器
使用Spring后,MyBatis不用再单独配置数据源和事务管理器了,直接使用Spring配置的即可。如果Spring中没有配置事务管理器,则不管是使用jdbctemplate,还是SqlSessionTemplate,都是默认自动提交事务。我暂时没怎么学习Spring的编程式和声明式事务管理,所以暂时就用自动提交吧。
配置sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.kaiji.mybatistest.domain" />
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
关于mybatis单独的配置文件
数据源和事务管理器都转移到了Spring的配置文件中,剩余的其他配置也都有替代方法,所以直接不配置该文件了。
实现自动注入mapper类
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.kaiji.mybatistest.dao" />
</bean>
没有手动使用SqlSessionTemplate来执行数据库操作,而是直接通过该设置创建mapper对象并自动注入。
使用<mybatis:scan />
也可以把上面的配置替换成<mybatis:scan base-package="com.kaiji.mybatistest.dao" />。这是使用了一个新定义的命名空间。所以需要在Spring配置文件中添加相应的文件头
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
配置注解扫描
<context:component-scan base-package="com.kaiji.mybatistest.service" >
</context:component-scan>
这样可以扫描到service包中添加@Service注解的service层实现类
分层代码
就不都贴出来了,只贴测试代码如下
整个项目结构
明天计划的事情
  • 自己在编程过程中遇到几个问题需要弄清楚,,比如package和install阶段的区别啥,还有@Autowired和@resource的区别啥的。
  • 主要任务是买云服务器,然后学习一下如何使用。师兄当时用的阿里的吧,我翻过师兄日报,不知好用吗?
遇到的问题
很多细节问题。本该早就作为这个例子,但就是卡在一个个细节上需要停下修真任务先去解决问题。其实感觉这才是最好的学习方式,自己发现问题然后解决问题,带着问题学习是最好的。总结下没写日报这几天积累的相关知识点
maven中资源路径
没用maven之前习惯把资源文件放到类路径,所以也习惯性的把接口映射文件直接放到src/main/java中对应的类路径,结果老是报错。经过查阅知道maven默认只从src/main/resources文件夹中扫描资源。所以解决思路就是
  • 要么修改maven默认配置,把src/main/java也放入资源扫描路径
  • 要么就老老实实把资源放到src/main/resources文件夹
关于maven的测试
师兄在上次日报提过区分跳过测试和跳过打包测试类。我详细查阅了,知道可以通过命令行或者在pom中手动配置测试插件来
  • 单独跳过测试但依然编译测试类
  • 或者直接跳过编译测试类。
关于maven的插件和生命周期
查阅学习后知道可以单独使用命令行执行插件,但是对于绑定到生命周期的插件(一般是默认自带的插件)就不能直接使用命令行执行这些插件了,否则报错。实际整个maven就是一个个插件的集合体。
关于maven中的依赖
当前项目依赖其他jar包的话,需要设置其jar包的scope参数,共有5中scope。然后还学习了jar包冲突的情况如何解决。至于更深入的项目的继承和聚合就暂时没学,这次记得不能跑偏太多,以后遇到复杂的多模块项目时再回来学习。
管理Spring-mybatis
模模糊糊知道了先获取SqlSessionTemplate,再或者mapper对象,和直接获取mapper对象实际是一回事,但是在实际使用中,直接通过配置MapperFactoryBean,或者使用MapperScannerConfigurer批量注册mapper对象更加方便。而且还避免了对mybatis api的依赖。
其他的
还有很多小细节就不写了
收获
还要要坚持每天写日报才好,一天没写没啥感觉,但是2天以上没写的话,明显感觉到自己正在丧失以前那种以写完当天日报作为一天结束的仪式感。以后不管学习量有多少,我一定尽量天天写日报,保持连贯性。



返回列表 返回列表
评论

    分享到