一、MyBatis使用的两种方式:
第一种:方式是自动映射
第二种:使用XML方式
二、MyBatis操作:
1、使用Mapper文件方式
2、使用Mapper接口和注解方式
3、mapper文件与接口结合使用(推荐这种方法)
三、 MyBatis一共有两种配置文件,一个叫主配置文件(下文截图中的net-mybatis-conf.xml),一个是映射的配置文件(net-mybatis-mapper.xml),其中映射文件可以有多个。(文件名随意编写,但不能重复)
这里使用的是自动映射(自动映射的要求是类中的属性名与数据库中表的字段名或者select语句最后显示的名称要一致)
(一)、mapper文件与mapper接口结合使用:
1、编写实体类,添加get和set方法、toString方法
2、创建MyBatis操作的数据访问接口
#MyBatis的操作:
MyBatis操作的接口或类
SqlSession ——接口
SqlSessionFactory ——接口
SqlSessionFactoryBuilder ——类
MyBatais是使用SqlSession类型的对象对数据库进行操作,而SqlSessin是一个接口,该接口类型的对象由SqlSessionFactory类型对象创建。
SqlSessionFactory也是一个接口,该接口类型的对象是由SqlSessionFactoryBuilder的build方法创建的。
注意:在创建SqlSessionFactory时,需要一个输入流对象,该输入流对象就是去读取一个MyBatis的配置文件,如图
3、配置图上的net—mybatis-conf.xml,(MyBatis的配置文件是一个XML文件)
MyBatis的配置文件主要配置数据库操作的环境及映射信息
4、配置MyBatis的映射文件
主要用于关系模型与对象模型的映射
映射文件的根节点:mapper 其属性:namespace
* 注意<mapper/>节点的namespace一定是接口类型的完全限定名
mapper节点其详细的定义:(里面剩余节点下章会讲到)
MyBatis操作的数据访问接口名:
MyBatis映射文件:
1、<select/>:查询 <insert/>:插入 <delete/>:删除 <update/>:更新 这四个是MyBatis映射文件中的<mapper>的操作子节点(这四个子节点的id属性要与数据接口类型的完全限定名)
2、要执行的SQL语句,如果该语句有参数,使用#{参数名}结出。如果不给参数,就可以不要。
小插曲:看到这里有没有觉得 MyBatis映射文件中的<mapper>的操作子节点里面的增删改查这几个节点中的parameterType属性的文件名太长了,这里可以用<typeAliases>节点进行简化,如图:
1、在主配置文件中定义类型使用的别名:
2、下图是映射文件,这样就简单化了,测试出来的结果是一样的。
还有xml是约束性的文件,一定要注意匹配模式先后顺序进行编写(逗号分隔是有先后顺序的)如下图
5、把MyBatis的映射文件加载到MyBatis的配置文件中
6、编写测试接口类,这里只测试一个查询,其余测试方法都是一样的。
结果:
注意:
接口与Mapper文件结合使用:
1、Mapper文件中的<mapper/>节点的namespace一定是接口类型的完全限定名
2、接口当中的方法名与<mapper/>中的子节点<操作节点>(select,delete,update,insert)节点的id值相同
3、接口方法的参数,是要和Mapper文件操作节点的parameterType(parameterMap)内容要对应。
(二)、使用Mapper接口和注解方式
在进行MyBatis操作时可以不要Mapper文件,操作的SQL语句,使用注解的方式给出。
示例:
在接口中直接编写sql语句:
把数据访问接口加载到MyBatis配置文件中(这里就不能用resource属性了,要用class属性),然后去测试这个接口,效果和mapper文件与接口结合是一样:
注意:这里说一下加载属性文件,下图是我的mysql数据库的jdbc url
在xml文件中配置jdbc url的时候,&这个符号是需要转义成amp; 也就是转成实体,如下:
jdbc:mysql://localhost:3306/netmarketdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
但是如果是在文件中就不用这个实体也就是amp;,直接使用&符号连接即可; 示例如下:
在MyBatis配置文件中,用<properties/>中<property/>子节点加载属性文件及定义属性,然后用EL表达式的${ }符号获取属性文件中的值。
在这里有两种配置方法,也就是上述说描述的
1、直接在xml文件中配置连接数据库的四个基本信息。
2、在属性文件中写好连接数据库的四个基本信息,再到MyBatis的配置文件中加载属性文件,再用EL表达式去获取属性文件中的值。