Java就业班(后端)学习笔记一
简单常识:
CS:
- 需下载客户端
- 软件更新需要在每个终端上进行更新
- 运算压力可以分摊给每个终端,服务器运算压力相对小
BS:
- 无需安装客户端
- 软件全部部署在服务器端
- 软件更新时,只需要更新服务器
互联网三大基石:
url:终端资源定位符(地址)
http协议:数据解析规范
html:数据访问载体
Form表单:
action属性提交地址,method指定提交方式
- get(数据通过地址栏提交,长度有限,数据会暴露不安全,只能提交文本不可提交文件)
- post(将数据单独打包成数据包发送,数据包大小无限制,不显示在地址栏相对安全)
java核心机制:1、垃圾回收。2、跨平台。
Mybatis
搭建过程:
首先创建项目module,在项目中创建对应文件加lib、src将所要使用的工具包复制到lib文件夹后需要add到文件中。创建properties属性文件,在src文件夹下添加xml文件。
三种查询方式:
SelectList、SelectOne、SelectMap。
需注意(Map<String,Object> String传入方法全路径,Object传入key值),在xml文件中写具体查询方法时resultType=“map”。map查询:通过数据库中的一列,快速找到对应的结果集。
添加一个xml文件时,要在配置文件中添加扫描映射,或者直接在映射时写入包路径。
三种传参方式:
当对应形参为单个值时,parameter属性为int。在xml文件中对应参数形式为#{param1}、#{param2}。
当对应形参为 单表对象 时,属性值可省略,在xml文件中对应参数形式为#{id},#{name},对应对象的属性名。
当对应形参为多表时可以用Map形参,parameter属性为map,在xml文件中对应参数形式为#{a}、#{b},对应map的key。
map.put();保存一个值
${}:相当于字符串拼接,打出的日志具体为:id=2,name=dsr
#{}:相当于底层使用占位,打出日志具体为:id=?,name=?
Mybatis增删改
由于返回值只能是int类型,所以不用写返回值。
增加操作时,对应数据库为自增属性时,用DEFAULT。
mybatis默认事务不提交(操作首先存入数据库内存中,提交后存入数据库硬盘),类似于缓冲流。
A:Sqlsession.commit();手动提交(有利于控制事务)
B:Sqlsession sqlsession = factory.opensession(true);自动提交
Mybatis动态代理
优点:可以实现多参传递,使用接口利于后期维护。
实现过程:首先创建interface,再添加对应xml文件。接口与xml文件的关联实现< mapper namespace = “接口全路径” > ,方法id和接口名称一致。
在调用类中,接口 mapper = Sqlsession.getMapper(接口类.class),List<接口> mapper.方法名
代理多参传递
与mybatis多参传递类似。
注意点:可以使用@Param标签起别名。形参为多个对象时,对应#{param1.id},#{param2.name}。(对象.属性)
Mybatis动态SQL
九个标签:
if where when set trim foreach bind include sql
根据条件查询用if标签时:
恒成立表达式: 1=1,具体为在where后加 < if text=“引号中的参数不用#{}” > 所有的if条件都需要加and
当使用where标签时:
第一个if条件语句不用加and,且不用恒成立等式。
缓存机制
Sqlsession缓存:一级缓存,默认开启(同一个Sqlsession对象,同一个Sqlsession方法)
factory缓存:二级缓存,同一个Sqlsession工厂,需在xml文件中加入< cache readOnly=“true” >
Threadlocal、多表查询后期更新(与SQL多表查询进行对比)