发表于: 2017-10-19 17:24:26

1 725


今日完成

task17-task19

一、mybatis原始DAO的编写

1.1创建接口--UserDAO

2.编写实现类--UserDaoImpl

2.1 sqlsessionfactory 的管理与 sqlssesion的管理

(1)正常开发时,以单例方式管理sqlSessionFactory,整个系统运行过程中sqlSessionFactory只有一个实例,将来和spring整合后由spring以单例方式管理sqlSessionFactory

(2)由于sqlSession是线程不安全,所以sqlSession最佳应用范围在方法体内,在方法体内定义局部变量使用sqlSession

2.2编写根据ID查询用户信息的实现类。

2.3编写插入,删除的实现类(复制上面的代码)


3.编写测试代码

3.1 new -->junit Tset case -->next

3.2选好需要测试的方法

3.3编写测试代码

3.4测试通过

二、mapper代理接口

1.总结

1.1原始Dao开发的问题

(1)dao的实现类中存在重复代码,整个mybatis操作的过程代码模板重复(先创建sqlsession、调用sqlsession的方法、关闭sqlsession

(2)dao的实现 类中存在硬编码,调用sqlsession方法时将statementid硬编码了。

(3)由于调用sqlsession方法时传入的变量,由于sqlsession方法使用泛型,即使变量类型使用错误,编译阶段不会报错。

2.mapper 开发规范

思路:

(1)创建mapper接口

(2)编写mapper.xml

!  mybatis可以自动生成mapper接口实现类对象------规范?

2.1 mapper.xml的namespace命名空间 指定为mapper接口的全限定名。

2.2 mapper.java 中的方法名与 xxmapper.xml的 statement 的 id 一样。

2.3 mapper.xml中statement的parameterType和mapper.java中方法输入参数类型一致

2.4 mapper.xml中statement的resultType和mapper.java中方法返回值类型一致

3.将userMapper.xml 配置到sqlMapperconfig.xml中。

4.因为不用写接口的实现类了,直接测试接口。

5.返回结果问题

不管查询记录是单条还是多条,在 statement中resultType定义一致,都是单条记录映射的pojo类型。

mapper接口方法返回值,如果是返回的单个对象,返回值类型是pojo类型,生成的代理对象内部通过selectOne获取记录,如果返回值类型是集合对象,生成的代理对象内部通过selectList获取记录。


总结:

1.自动生产实现类对象的语句

//创建mapper对象,mybatis自动生成mapper代理对象。

UserMapper UserMapper = SqlSession.getMapper(UserMapper.class);

2.遵循相应的开发规范实现mapper接口的开发。



三、Spring学习
1.SPring概念

1.1什么是Spring;

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。

1.2 spring的优点

1. Spring是分层的架构,你可以选择使用你需要的层而不用管不需要的部分

2.   SpringPOJO编程,POJO编程使得可持续构建和可测试能力提高

3.   依赖注入和IoC使得JDBC操作简单化

4.   Spring是开源的免费的

5.   Spring使得对象管理集中化合简单化

明日计划

1.spring入门程序与理解

遇到问题

1.maven 风格的项目,加载了依赖包,配置了log4j.perproties;还是打印不出来日志。



收获

1.了解Spring的产生背景。

2.理解mapper接口的规范。



返回列表 返回列表
评论

    分享到