今日所学(四) [当日学习内容检查,如果有误,望大家赐教]

一、回顾知识

1、什么是框架?

拿我的生活的例子来说,框架就好比是一个等待装修的毛坯房

框架就像一个半成品的软件,等待开发人员进行二次开发1

框架的优点:

1、节省人力物力,节省资源

2、框架规范了开发者的代码,使得其代码可读性高 , 间接减少了我们后期开发的成本

2、什么是orm框架

首先了解到orm是什么意思1, 对象关系映射框架

作用是 将java对象数据与数据库数据进行一个映射管理

3、mybatis框架

是一个半自动的orm框架 , 与其中对应的是全自动的orm框架

这里的半自动和全自动说的 sql代码 是否可以自己编写

这里引申到了mybatis和hibernate的区别

第一点:谈及到自动化 , mybatis中sql语句可以编写 , hibernate中sql语句自己生成

第二点是上述谈及sql是否可以调优,mybatis可写sql

第三点是mybatis比hibernate更容易学习,但是比hibernate跟复杂

4、mybatis的写法

pom文件

mybatis的核心文件

mapper映射文件以及mapper接口文件

然后就是需要pojo类

5、mybatis工作流程

首先就是使用流去读取mybatis的核心文件

然后就去new一个sqlsessionfactorybuilder对象

紧接着使用构建者模式去build我们的mybatis的文件,返回给我们的sqlsessionfactory对象

然后进行工厂模式,sqlsessionfactory.opensession()返回我们sqlsession对象

这里有两条路线去操作数据库

第一条是sqlsession直接操作数据库

第二条是 sqlsession调用getmapper()方法 , 使用动态代理模式获取mapper对象 , 然后操作数据库

6、mapper动态代理

getmapper方法最终是调用jdk动态代理方法,生成一个代理对象,类型是传入的接口类型

Mapperprox类invoke()方法中,MapperMethod类调用了execute()方法,通过上述来创建代理方法,该方法的底层调用是sqlsession的方法

二、今日学习

1 、使用mybatis框架进行增删改查

2、#和$的区别:

  1. #是sql模板的占位符 , $是将字符串拼接到sql模板

  2. #可以防止sql注入,$不能

  3. ${}括号中必须是value

3、sql模板中like后面

1、在调用方法时候使用%% 2、使用字符拼接 %{value} 模糊查询如果不想在调用方法时参数加%,可以使用拼接参数的方式设置Sql:

3 使用#然后加上 bind 参数

4 mybatis多参数处理方法

一、自定义类传参

二、map传参

三、顺序传参 arg0 , param1开始 (可读性不高)

四 @Param 传参 MyBatis接口方法的参数前使用@Param 传参,定义映射文件中Sql语句的参数名

5、主鍵回填 mybatis

解决了插入数据不知道id的情况

使用用法 selectKey 标签中的属性有 ke'yProperty是java的属性 keyColumn是数据库列名 , resultType是主键的类型 order 执行之后

select LAST_ISERT_ID() 查询表中最后的一个id

必须要和<insert>标签连用

6、property属性

引入数据源

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root

7、别名(typealias)

    <typeAliases>
        一个配一个包的 
       <typeAlias type="com.wr.domain.User" alias="User"></typeAlias>
        一个是配一个类的
        <typeAlias type="com.wr.domain"></typeAlias>
    </typeAliases>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值