Mybatis框架概述:
MyBatis是一个基于java的持久层框架,内部封装了jdbc,是开发者只需要关注sql语句本身,而不需要花费精力去加载驱动,创建连接,创建statement等繁琐的过程。
Mybatis通过xml或注解的方式将要执行的各种statemnet配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。
采用ORM的思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。
1.1搭建MyBatis开发环境
1.1.1创建maven工程
创建mybatis01的工程(基于idea),工程信息如下:
Groupid:com.itheima (第一个段为域com,第二个段为公司名称itheima)
ArtifactId:mybatis01 (项目名字)
Packing:jar
Groupid和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
1.1.2添加MyBatis坐标
在pom.xml文件中添加Mybatis3.4.5的坐标:
1.1.3编写User实体类
在Java的com/itheima/domain包下创建User类并且实现Serializable接口。为方便起见,创建的字段名称要和数据库表里的字段名称一样。并生成相应的get,set方法和toString 方法
1.1.4编写持久层接口IUserDao
IUserDao接口就是我们的持久层接口,用于写我们要执行的方法,在相应的映射文件文件中去实现。在java 下的com/itheima/dao包中。
1.1.5编写持久层接口映射文件IUserDao.xml
即接口中方法的实现方法,但是必须和持久层接口放在相同的包中,并且以持久层接口名称命名文件名,扩展名是.xml
注:
namespace:用于绑定要实现的接口的全限定类名
select中id是要实现的方法名,resultType是返回结果的类型。
1.1.6编写SqlMapConfig.xml配置文件
1.1.7编写测试类
1.2小结
Mybatis的实现流程大概为,通过工厂模式创建代理对象,执行IUserDao接口中的方法,然后根据你在配置文件(SqlMapConfig.xml)中的映射配置位置(本示例为:resource=com/itheima/dao/IUserDao.xml)去寻找接口的实现方法并调用。
1.3注解的使用(补充)
1.3.1在持久层接口中添加注解
1.3.2修改SqlMapConfig.xml
1.3.3注意事项:
在使用基于注解的 Mybatis 配置时,必须 xml 的映射配置(IUserDao.xml)或者修改名字。