01-mybatis简介-原始jdbc操作
原始的jdbc操作有什么问题?
1.重复代码;
2.性能低;
3.sql语句和java代码耦合度太高
02-mybatis简介-mybatis的概述
mybatis可以解决那些问题?
mybatis是持久层框架;
mybatis是对jdbc的封装,并且它解决了jdbc原生代码存在的问题;
*********************************************
ORM:
object relationship mapping:
对象关系映射;
是一种思想:java对象与数据库中表的映射关系;
mybatis是一种实现了ORM思想的框架;
hibernate是一种实现了ORM思想的框架;
03-mybatis快速入门-代码实现
mybatis使用步骤?
1.导入坐标:
mysql;
mybatis;
2.在mysql数据库中准备库和表;
3.准备实体类;
4.编写映射配置文件 XxxMapper.xml;
5.编写mybatis核心配置文件;
6.使用mybatis提供的api完成测试;
04-mybatis快速入门-知识小结
命名空间有什么用?
命名空间和id结合起来是一个sql行为的唯一标识
05-mybatis映射文件概述
mapper映射文件中,每一部分有什么作用?
06-mybatis的增删改查-插入数据操作
插入语句对应的是哪个标签?
insert
如何声明参数的类型?
parameterType=“类的全路径名称”
如何获取参数的值?
#{属性名}
**********************
ognl表达式;
插入完毕后要不要提交事务?
要:
***************
mybatis默认是手动提交事务
07-mybatis的增删改查-插入数据注意点
08-mybatis的增删改查-修改和删除操作
修改对应的是哪个标签?
update
删除对应的是哪个标签?
delete
修改是否需要提交事务?
要
删除是否需要提交事务?
要
如果参数传递的是一个单值,如何获取这个值?
#{任意名称}
如果参数传递的是一个对象,如何获取对象的值?
#{对象的属性名}
09-mybatis的增删改查-知识小结
10-mybatis核心配置文件-概述
11-mybatis核心配置文件-environments标签(了解)
transactionManager取值有几种?
JDBC:
使用原生的JDBC控制事务;
MANAGED:
使用容器来控制事务
datasource取值有几种?
POOLED:
池子;
UNPOOLED:
非池子;
JNDI:
把数据源配置到应用的外部,然后再使用JNDI这项技术读取的程序中使用;
*****************************
javaEE:
java企业级开发,是企业级开发的13项技术的总称;
servet;
jsp;
JNDI:
java native defination interface;
java本地定义接口
12-mybatis核心配置文件-mappers标签
如何指定mapper的位置?
标签
resource属性:
指定的映射文件路径是一个相对于 resources目录的路径
url属性:
指定的映射文件路径是一个绝对路径
class属性:
指定的是一个接口的全路径名称;
<package>标签:
指定了一个包:cn.itcast.mapper,那么myabtis就会扫描该包下的所有接口;
13-mybatis核心配置文件-properties标签
properties标签的作用?
加载外部的properties,代码抽取
14-mybatis核心配置文件-typeAliases标签
1.mybatis给常用的类型已经起好了别名:
java.lang.Integer---------int
java.lang.Double----------double
java.lang.String----------string
java.util.List------------list
java.util.Map-------------map
数组----------------------array
2.如果要给自定义的类型起别名:
在核心配置文件中:
********************
扫描某个包,给该包下的所有类起别名:
起的别名是:当前类的 类名/类名首字母小写:
例如 com.itheima.domain.User--------User/user
15-mybatis核心配置文件-知识小结
16-mybatis相应API
Resources对象有什么用?
以流的形式加载配置文件
SqlSessionFactoryBuilder对象有什么用?
构建SqlSessionFactory工厂对象
SqlSessionFactory对象有什么用?
获取SqlSession对象
openSession()://得到SqlSession对象执行增删改语句时,需要手动提交事务
openSession(true):得到SqlSession对象执行增删改语句时,自动提交事务
SqlSession对象有什么用?
执行sql语句