mybatis学习总结一

10 篇文章 0 订阅
6 篇文章 0 订阅

mybatis与关联查询学习心得
1目录
1.1 mybatis的CRUD
1.2 mapper的使用
1.3动静态代理

2 mybatis的CRUD
2.1技术的整体运用
有以下几步:1.设置数据库,开启服务。2.创建java工程,导入三大类型jar包,mybatis的核心包与依赖包、数据库驱动包3.添加junit工具,通过buildpath->conf…4.src文件夹下导入文件SqlMapConfig.xml、log4j.properties文件
5.在SqlMapConfig.xml文件中配置数据库、加载map.xml文件6.在log4j.properties文件中配置日志文件的目录6.创建package包分别为test、pojo、dao 7.包pojo存放实体类和xml文件,dao存放接口和实现类,test用于测试。8.pojo中的类根据数据库的表创建对应的类,xml文件则是对数据库进行各种操作。9.dao中接口的方法对应着xml文件中增上改查标签的id

2.2 知识总结
2.2.1部分知识
1.在测试的过程中先创建SqlSessionFactory,在创建session,利用session进行CRUD

Session.select(…),session.insert(…)…
1.模糊查询时占位符有所不同

2.插入数据库时,要在xml文件中设置主键

2.2 mapper的使用
2.2.1整体技术使用
在上一个知识点上进行改进。第一点:配置db.properties文件,在里面填写driver、url、username、pwd的值。第二点:在SqlMapConfig.xmly引入db.properties文件,并对datasource中的数据库属性进行配置。第三点:利用typeAliases标签为需要的类配置别名,利用mappers、package标签在家所有的xml映射文件。
第四点:整个项目只有pojo、mapper、test三大包,pojo存放实体类,mapper存放接口类和xml文件且这个类和文件同名

2.2.2 知识点整合
2.2.2.1 参数类型知识点
多个参数的情况处理:
1.xml文件中的sql语句中拥有两个及以上参数,其类型不用写出来但接口方法需要进行一定的处理如:

2.xml文件的CRUD标签中,参数类型是hashmap的,字段名称对应hashmap的键,字段值对应hashmap的值。即一个字段有唯一值
3.参数类型是list的,则需要用到标签foreach,因为一个字段存在多个值,需要循环表示

4.参数类型是数组的也一样需要用到foreach标签

5.组合类型的使用也与上面差不多

2.2.2.2 综合知识点
1.所有的xml文件必须在SqlMapConfig文件中进行加载才起效
2.xml文件的命名为类名+mapper,且其对应的接口文件与其名字相同
3.xml文件与接口文件必须在同一目录下
4.xml文件中的namespace值为包名.接口名

2.3 动静态代理
代理的目的是不改变源码的情况下对目标类进行功能的扩充
2.3.1 静态代理
代理类与目标类必须有同一接口或父类
2.3.2动态代理的步骤
实现步骤:
1.创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法。
2.创建被代理的类和接口
3.通过 Proxy 的静态方法 newProxyInsatance(ClassLoader loader,Class[] interfaces,InvocationHandler,handler) 来创建一个代理
4.通过代理来调用方法

2.4错误总结

1.细节问题,这些属性后面不能加分号

2.配置时必须设置数据库的编码与项目一致
3.当显示打开连接失败,考虑数据库服务断开
4.SqlSessionFactory的配置步骤不能搞混
5.typeAliases即别名的配置必须写在数据库配置之前的位置

2.5 心得体会
再次学习这一个框架,对于以前没有弄懂的知识点,经过在次的分析、学习终于弄懂了很多。对于整个框架的构设也更加的清晰明了。当然,也存在着一些细节方面的问题,对此我认真的解决了这些问题,并将其进行整理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值