Mybatis学习笔记
1. mybatis是什么?
? mybatis是一个持久层的框架,是apache下的顶级项目。
? mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,
大部分需要程序员编写sql)满足需要sql语句。
? mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java
对象。(输出映射)
2. mybatis框架
SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定的) 配置了数据源、事务等mybatis运行环境 配置映射文件(配置sql语句) mapper.xml(映射文件)、mapper.xml、mapper.xml..... SqlSessionFactory(会话工厂),根据配置文件创建工厂 作用:创建SqlSession SqlSession(会话),是一个接口,面向用户(程序员)的接口 作用:操作数据库(发出sql增、删、改、查) 输入参数类型 java简单类型 hashmap pojo自定义 Executor(执行器),是一个接口(基本执行器、缓存执行器) 作用:SqlSession内部通过执行器操作数据库 输出结果 类型 java简单类型 hashmap pojo自定义 mapped statement(底层封装对象) 作用:对操作数据库存储封装,包括 sql语句,输入参数、输出结果类型 msyql
1
3. 一个原始查询代码
4. “主键”生成及返回 ? mysql自增主键
a) 执行insert提交之前自动生成一个自增主键。通过mysql函数LAST_INSERT_ID()获取到刚插入记录
的自增主键。是insert之后调用此函数。
2
? mysql UUID主键
使用mysql的uuid()函数生成主键,需要修改表中id字段类型为string,长度设置成35位。
执行思路:先通过uuid()查询到主键,将主键输入 到sql语句中。执行uuid()语句顺序相对于insert语句之前执行。
? Oracle序列主键
insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{birthday},#{sex},#{address})
5. 一个删除用户的代码
主要注意:sqlSession.commit()提交事务操作。
3