永远的HelloWorld
建工程+添jar包
打开mysql新建数据库+建表person
添加配置文件mybatis-config.xml,从官方文档拷贝
修改mybatis配置文件,数据库连接配置,先用直连后续换c3p0
建对应的entity持久化实体
建Mapper接口并定义好方法
建对应Mapper接口的XML映射文件
假如没有自动提示
将MapperXML映射文件配置进mybatis-config.xml
编写Junit单元测试类,执行CRUD操作
第一个入门case的小结
XXXMapper.xml文件中,namespace必须是接口全路径
XXXMapper.xml中的id必须是接口里面的方法名 ,两者一致
XXXMapper.xml中的parameterType类型必须和对应方法的形参一致
XXXMapper.xml中的resultType类型必须和对应方法的返回值类型一致
每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,
它也是线程不安全的,定义为局部变量
mapper接口实现动态代理对象
定义:只需要编写mapper接口的(等价于传统的dao接口),
Impl实现类,也即动态代理+面向接口
XXXdao接口-------->XXXMapper.java
XXXdao接口Impl实现类-------->XXXMapper.xml
再次和JDBC、Hibernate、JPA对比学习
mybatis解决了哪些问题,为何有它一席之地
相对于JDBC
Sql语句配置在XXXXmapper.xml文件中与java代码分离
数据库连接池
Where条件的频繁变化,Mybatis自动将java对象映射至sql语句,
通过statement中的parameterType定义输入参数的类型。
相对于Hibernate
Hibernate太重,mybatis轻量级
严格来说,Mybatis是个半自动化的SQL Mappering映射框架,因为MyBatis需要程序员自己编写Sql语句
学习门槛低,简单易学,看官网文档都知道,不到100页,可以快速上手。
程序员直接编写原生态sql,可严格控制sql执行性能,sql在手,天下我有。
相对于JPA
相对于Spring Data