mybatis学习笔记

1.头文件

  <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

DTD声明始终以!DOCTYPE开头

configuration是文档根元素名称

  PUBLIC表示是公共DTD

  -表示是非ISO组织

  mybatis.org表示组织

  DTD 表示类型

  Config 表示标签

  3.0是标签后附带的版本号

  EN表示DTD语言是英语

最后是DTD的URL

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

2.序列化

  public class StudentEntity implements Serializable {  

       private static final long serialVersionUID = 3096154202413606831L;  

 实现serializable(序列化接口)都会在下面加SUID,后面是自定义的值,如果不写,那么在该类序列化的时候(即通过流把类的属性信息保存在文件中)后,中途改动类后,反序列化的时候就会报错,不能回复到原来的类,因为反序列化的时候(没有指定情况下),它自动生成的SUID会变化

3.mybatis的配置文件主要包括给类起别名(这个别名与mapper文件中的resultType对应),引入mapper文件,还可以配置数据源

4.Hibernate,mybatis都是orm思想即都是通过配置文件得到sessionFactory,由sessionFactory得到session,通过session进行增删改查,session自己带有事务提交commit()方法

5.<resultMap></resultMap>用于将数据库字段映射到POJO的字段

6.用接口映射时,接口中方法名必须与mapper中的id一致

7.mapper文件中的namespace对应映射接口路径

  通过  接口类 it=session.getMapper(接口类.class),再调用it方法,实现接口方式编程

8.即使接口中的返回值为list,在mapper中resultType也可以写POJO,因为它是一行行从数据库取出来的

9.如果mapper某个方法只有一个参数#{id},不管映射POJO有没有id属性,都会将传入的参数赋给id

10.dataSource最常用的是spring的

   org.springframework.jdbc.datasource.DriverManagerDataSource

  也可以用其他的连接池类

11.sqlSessionFactory可以是org.mybatis.spring.SqlSessionFactoryBean也可以是org.apache.ibatis.session.SqlSessionFactory

11.实现接口和mybatis映射的是org.mybatis.spring.mapper.MapperFactoryBean,前提是吧sqlsessionFactory和interface赋给其属性,如果不用这个类就要通过session.getMapper方法去实现映射

12.classpath指的是项目在服务器解析成war文件后webinfo/classes路径

13.configuration中可以指定映射的mapper路径,也可以不指定,在sqlSessionFactory的mapperLocations属性指定

14.org.mybatis.spring.mapper.MapperScannerConfigurer扫描接口基本包

15.@RequestMapping来自spring-web包,ModelAndView来自org.springframework.web.servlet-3.1.1.RELEASE.jar

HttpServletRequest 来自 servlet-api.jar

16.spring+mybatis,常用情况是spring注入datasource,spring注入transactionManager,再把datasource值赋给transactionManager的datasource属性,spring注入sqlSessionFactory,再把datasource,mybatis的configuration文件,以及mapper文件包的路径赋给其相应属性,再注入mapper扫描类指定接口位置,mapper中的命名空间需要指定对应接口的路径以使机器识别每个mapper对应的接口,在MVC配置文件中应该扫描controller的包及配置视图解析

17.< ?xml version="1.0" encoding="UTF-8"?>必须位于最左边和最上边

18.类  extends SqlSessionDaoSupport  可以通过调用this.getSqlSession()可以得到SqlSessionTemplate从而执行sql,类似于hibernatetemplate

posted on 2018-07-08 12:20  Winter_89757  阅读(194)  评论(0编辑  收藏  举报

导航