1.頭文件 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> DTD聲明始終以!DOCTYPE開頭 configurat ...
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