Spring入门3
Java体系操作数据库的框架:
- 全ORM: Hibernate,JPA 完全隔离sql语句,不写sql即可实现相应的数据库操作。相对半ORM来说执行速度会慢一点。
- 半ORM:Mybatis 隔离sql和java语句,java和 sql是分开的。更适合web项目的开发
什么是 MyBatis
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
原理图
MtBatis进行数据查询
- 导入依赖 maven包
- 配置数据源 确定数据库的类型、账号、密码
- Mybatis相关文件的创建
1.创建实体类
数据库中的表 — 类
数据库表中的字段 — 类属性
数据 – 对象
2.创建接口 AdminMapper
3.创建对应的映射文件 Xml
4.配置mybatis 指定映射文件的位置、打印sql语句等
5.扫描接口 在启动类上面扫描
6.单元测试 去test目录下的Tests进行
SpringBoot查找静态资源的顺序
先从resources > static > public
如果在这几个文件夹中任意一个文件中找到静态资源,就不会再去其他的文件夹查找。都没有,就会直接抛出404.
MySQL数据库中的字段类型varchar和char的主要区别是什么?哪种字段的查找效率要高,为什么
区别一,定长和变长
char 表示定长,长度固定,varchar表示变长,即长度可变,当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于10个,则用空格填满。而varchar(10),小于10个的话,则插入多少个字符就存多少个。varchar怎么知道所存储字符串的长度呢?实际上,对于varchar 字段来说,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串的长度。
区别之二
存储的容量不同对char来说,最多能存放的字符个数 255,和编码无关。而varchar呢,最多能存放 65532 个字符。VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532 字节,最大有效长度是 65532 字节,在varchar存字符串的时候,第一个字节是空的,不存任何的数据,然后还需要两个字节来存放字符串的长度。所以有效长度就是 65535 - 1 - 2= 65532