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