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) 编辑 收藏 举报