标题1.XML 映射文件
MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。
标题.2.顶级元素
cache – 对给定命名空间的缓存配置
cache-ref – 对其他命名空间缓存配置的引用
resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。当表中的列名与实体对象的属性名不一致时,同用它来处理列名与属性名的匹配。
sql – 可被其他语句引用的可重用语句块。起代码重用的功能。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语句
标题3.映射文件根节点:
Mapper:是配置文件的根节点,只能有一个。重要属性namespace:用于关联数据访问接口类。再加上顶级元素的ID值,形成一个唯一的SQL指令标识。ID属性值必须与接口中的方法名一致。以后的数据接口中的方法不能有重载。会造成SQL注册时的紊乱。
标题4.Select 元素属性
ID:唯一标识
parameterType:传入到SQL指令中的参数类型,MyBites与Java之间的数据类型已经做好了处理,不需要关注类型不一致问题。
resultType:SQL指令执行后,把数据进行封装时指定的实体类型。
resultMap: SQL指令执行后,把数据封装成实体对象时,但是出现列名与实体的属性名不一致的情况,则用它进行列与属性之间的映射。通常情况下,resultType与resultMap不建议一起使用。
标题5.Insert元素
parameterType属性:传入参数,如果传入的参数是一个实体类型,则在SQL指令中用#{属性名}就可以取出实体对象中的值来进行填充。
标题6.注意:增,删,改执行结束后必须要进行事务的提交:
session.commit(); //提交事务
页面:
标题7.参数的输入:
1.如果传递的数据比较多,则把数据封装成实体对象,比如添加订单,用户,供应商功能。在Servlet中就把数据就封装成实体对象。
public int add(User user)throws Exception;
2.如果数据不能封装成一个实体对象。比如分页,多条件查询。我们就把数据封装成List或Map,建议用map ,操作方便一些。
public List getUserList(Map map)throws Exception;
或
//参数前加上Param注解,在生成代理对象时,会自动转换成map
Public int getUserCount(@Param(“userName”)String userName, @Param(“userRole”)int userRole)
标题8.MyBites的缓存有两种:
一级缓存:默认情况下是开启的,不需要做任何处理。,它是基于SqlSession 级缓存。在同一个会话中缓存有效,当会话关闭,则缓存清空。
二级缓存超出会话级,所有的会话都可以共享。需要进行简单的配置。
1.在主配置文件的settings节点中启用缓存
2.在映射文件中配置缓存。FIFO表示:先进先出 size:表示缓存512个。flushInterval:表示缓存过期时间,单位是毫秒(1秒=1000毫秒)