Mybatis的学习之路(一)

mybits属于持久层的,和Hibernate一样都是和数据库做交互的,底层都是封装了jdbc。另外有2种使用方式,一种是通过原先的,做一个实现类,另外一种是通过接口的方式实现的。


mybaits是apache出的,后来代码迁移到谷歌code,迁移前叫ibaits。


如果直接使用jdbc会出现一些问题,所以采用封装的形式。资源频繁开启和关闭,语句和插入参数都是使用了硬编码,不利于维护。


在使用mysql的时候字符集要选择utf-8,不选会乱码。mysql使用的软件是navicat premium

mybaits有数据源,缓存的开关,延迟加载的开关,默认关闭,不好用,用ri什么的,分布式缓存。


pojo:不按mvc分层,只是java bean有一些属性,还有get set方法
domain:不按mvc分层,只是java bean有一些属性,还有get set方法
po:用在持久层,还可以再增加或者修改的时候,从页面直接传入action中,它里面的java bean 类名等于表名,
属性名等于表的字段名,还有对应的get set方法
vo: view object表现层对象,主要用于在高级查询中从页面接收传过来的各种参数.好处是扩展性强
bo: 用在servie层,现在企业基本不用.
这些po,vo, bo,pojo可以用在各种层面吗
可以,也就是po用在表现层,vo用在持久层不报错,因为都是普通的java bean没有语法错误.
但是在企业最好不要混着用,因为这些都是设计的原则,混着用比较乱.不利于代码维护.


自学方法论: 理论 -> 实践 -> 理论 -> 实践  反复迭代三遍




框架原理不清晰,


mybaits的代码由github.com管理,地址:https://github.com/mybatis/mybatis-3/releases






后期在做crm项目的的时候会学习新的一个连接池,德鲁伊连接池。


使用mybatis需要导包,创建核心配置在src目录下,这里注意是src目录下,在创建bean类,用来接收返回对象,在bean类下创建语句的映射文件,最后记得,在核心配置文件种,要加入映射文件的路径。

selectOne是用来接收返回值是单个的,selectList用来接收返回值是多个的。


参数基本类型,返回值一个。

这里使用拼接符会有sql注入的危险,只有在使用like这样的语句才使用拼接,如果前面是‘=’号,建议不要使用拼接符。


参数基本类型,返回值集合。





参数bean类,返回值自增的id。

mysql有自增的字符串uuid。查询uuid要在语句前执行。普通的自增id,要在语句后执行,如果只要单纯的添加,添加进javabean就可以。另外注意的是查询要关闭close,不关闭会有缓存,那么如果是增删改就必须要close。




参数基本类型,删除语句



参数bean对象,修改数据





原生Dao的实现

和原生的jdbc一样,有实现类,有工具类,封装了一些属性。

动态代理Dao的实现

和原生jdbc最大的差别就是没有了实现类,通过映射,但是也需要遵循一些规则,比如namespace的名字要是接口全名,name的名字要是方法名字,参数和返回的参数类型都要有,还有就是在核心的配置文件要加上包名加名字,不要后缀。

配置文件

为了应对企业多文件需要改动映射等配置,不能像上面的那样,一个个配置,所以可以通过更改下配置,让原本繁琐的变得简单点。

首先是一些别名的说明,比如在输入参数的时候输入int有时候会写java.lang.integer那么其实可以简便写,以下列出





当然除了一些基本参数的别名,那么bean类的别名,也有相对应的设置方法。在核心文件文件里配置





以上有定义单个,和包一起定义的,包定义的别名就是类名,这里的类名不区分大小写,感觉是个bug,会出事,java是严格区分大小写的,这是很不好的,只能自己规定输入的了。




还有在配置文件中,配置映射实现动态代理,那么规则就是名字要要相同,只是配置一直改动,有3种改动方式,第3种用的最多。







最后是配置文件的加载,我们也要配置一些数据库的参数放在另外个文本。




这里通过配置来加载数据库信息,加个语句



最后需要说明的是,此次主要说了增删改差,还有一些语句需要扩张,比如返回的是boolean值也需要自己扩张,另外mybatis有缓存,但是不开启因为不好用,后面会学习分布式缓存,还有就是也有延迟的定义属性,如果有用到,可以自行学习。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值