-
Spring Boot支持两种类型的配置文件:
application.properties或application.yml。-> application.properties:
server.port = 8080-> application.yml
server: port:8090 #用空格缩进对其,不能用tab这两种配置文件可以并存,但是.properties的优先级高于.yml。
-
@SpringBootApplication是一个组合注解,包含@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration三个注解,是项目启动注解。 -
测试代码:
@Resource private JdbcTemplate jdbcTemplate; /** * mysql集成sping boot简单测试 */ @Test public void mySqlTest(){ String sql = "select * from ay_user"; List<AyUser> ayUserList = jdbcTemplate.query(sql, new RowMapper<AyUser>() { @Override public AyUser mapRow(ResultSet resultSet, int i) throws SQLException{ AyUser ayUser = new AyUser(); ayUser.setId(resultSet.getString("id")); ayUser.setName(resultSet.getString("name")); ayUser.setPassword(resultSet.getString("password")); return ayUser; } }); System.out.println("查询成功:"); for(AyUser ayUser:ayUserList){ System.out.println(ayUser.toString()); } }笔记:
JdbcTemplate:一个通过 JDBC 连接数据库的工具类,我们可以通过这个工具类对数据库进行增、删、改、查等操作。@Resource:自动注入,通过这个注解,在项目启动之后, Spring Boot 会帮助我们实例化一个 JdbcTemplate对象,省去初始化工作 。query()方法: JdbcTemplate 对象中的查询方法,通过传入SQL语句和RowMapper对象可以查询出数据库中的数据。RowMapper对象:RowMapper对象可以将查询出的每一行数据封装成用户定义的类,在上面的代码中,通过调用 RowMapper 中的mapRow方法,将数据库中的每一行数据封装成AyUser 对象,并返回。
-
springboot连接mysql会报时区错误,在url后加上参数
serverTimezone=UTC就好。 MySQL配置时区 -
Thymeleaf:
常用表达式:
${}变量表达式*{}选择表达式#{}消息文字表达式@{}链接url表达式#maps工具对象表达式
常用标签:
th:action:定义后台控制器路径th:each:循环语句th:field:表单字段绑定th:href:定义超链接th:id:div标签中的id声明th:if:条件判断语句th:include:布局标签,替换内容到引用文件th:fragment:布局标签,定义一个代码片段,方便其他地方引用th:object:替换对象th:src:图片地址引入th:text:显示文本th:value:属性赋值
常用函数:
#dates:日期函数#lists:列表函数#arrays:数组函数#strings:字符串函数#numbers:数字函数#calendars:日历函数#objects:对象函数#bools:逻辑函数
-
命名空间:在以上引入
<html xmlns:th="http://www.thymeleaf.org">,就可以在html中使用Thymeleaf标签语言,用关键字 “ th ” 标注。 -
事务四大特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
事务一般加在服务层。
-
根据监听对象可以把监听器分为三类:
- ServletContext(对应Application):Application在整个web服务中只有一个,在web服务关闭时销毁。
- HttpSession(对应session):Session对应每个会话,在会话起始时创建,一端关闭会话时销毁。
- ServletRequest(对应request):客户发送请求时创建(一同创建的还有response),用于封装请求数据,在一次请求处理完毕时销毁。
根据监听的事件可以把监听器分为三类:
- 监听对象的创建于销毁
- 监听对象域中属性的增加和删除
- 监听绑定到session上的某个对象上的状态
-
redis基本类型:string字符串,list链表,hash哈希,set集合,zset有序集合(sorted set)
基本操作:
###---------------------字符串string操作---------------------### #新建字符串 127.0.0.1:6379> set name 'cyj' OK #查询 127.0.0.1:6379> get name "cyj" #修改 127.0.0.1:6379> set name 'big' OK #修改后查询 127.0.0.1:6379> get name "big" #删除 127.0.0.1:6379> del name (integer) 1 ###---------------------链表list操作---------------------### #新建链表list1,从头开始push 127.0.0.1:6379> lpush list1 'a1' 'a2' 'a3' (integer) 3 #查询,从头开始,起始下标为0,终止下标为-1 #0表示第一个,1表示第2个,-1表示最后一个,-2表示最后第2个 127.0.0.1:6379> lrange list1 0 -1 1) "a3" 2) "a2" 3) "a1" #新建链表list2,从尾开始push 127.0.0.1:6379> rpush list2 'A' 'B' 'C' (integer) 3 #查询 127.0.0.1:6379> lrange list2 0 -1 1) "A" 2) "B" 3) "C" #根据索引取值 127.0.0.1:6379> lindex list 1 "a2" #获得长度 127.0.0.1:6379> llen list1 (integer) 3 #通过索引设置值 127.0.0.1:6379> lset list1 2 'b' OK #设置后查询 127.0.0.1:6379> lrange list1 0 -1 1) "a3" 2) "a2" 3) "b" #添加值,从头开始 127.0.0.1:6379> lpush list2 'D' (integer) 4 #添加后查询 127.0.0.1:6379> lrange list2 0 -1 1) "D" 2) "C" 3) "B" 4) "A" #添加值,从尾开始 127.0.0.1:6379> rpush list2 'E' (integer) 5 #添加后查询 127.0.0.1:6379> lrange list2 0 -1 1) "D" 2) "C" 3) "B" 4) "A" 5) "E" #删除指定位置:lrem key count value #根据count的值,移除list中与value相等的元素 #1.count>0:从表头向表尾搜索,移除count个与value相等的元素 #2.count<0:从表尾向表头搜索,移除count的绝对值个与value相等的元素 #3.count=0:移除表中所有与value相等的元素 127.0.0.1:6379> lrem list2 1 'B' (integer) 1 #删除后查询 127.0.0.1:6379> lrange list2 0 -1 1) "D" 2) "C" 3) "A" 4) "E" ###---------------------集合set操作---------------------### #新建 127.0.0.1:6379> sadd user_set 'a' 'b' 'c' 'a' (integer) 3 #查询 127.0.0.1:6379> smembers user_set 1) "b" 2) "c" 3) "a" #删除 127.0.0.1:6379> srem user_set (integer) 1 #删除后查询 127.0.0.1:6379> smembers user_set 1) "b" 2) "c" #添加 127.0.0.1:6379> sadd user_set '1' (integer) 1 #添加后查询(集合是无序的,不确定添加到了哪个位置) 127.0.0.1:6379> smembers user_set 1) "b" 2) "1" 3) "c" ###---------------------哈希hash操作---------------------### #清除数据库 127.0.0.1:6379> flushdb OK #新建hash 127.0.0.1:6379> hset myhash "user1" "cyj" (integer) 1 #添加字段和值 127.0.0.1:6379> hset myhash "user2" "bbb" (integer) 1 #查询长度 127.0.0.1:6379> hlen myhash (integer) 2 #查询所有字段 127.0.0.1:6379> hkeys myhash 1) "user1" 2) "user2" #查询所有值 127.0.0.1:6379> hvals myhash 1) "cyj" 2) "bbb" #根据字段查值 127.0.0.1:6379> hget myhash "user2" "bbb" #查询所有字段和所有值 127.0.0.1:6379> hgetall myhash 1) "user1" 2) "cyj" 3) "user2" 4) "bbb" #更改字段值 127.0.0.1:6379> hset myhash "user2" "ccc" (integer) 0 #更改后查询 127.0.0.1:6379> hgetall myhash 1) "user1" 2) "cyj" 3) "user2" 4) "ccc" #删除字段和值 127.0.0.1:6379> hdel myhash user2 (integer) 1 #删除后查询 127.0.0.1:6379> hgetall myhash 1) "user1" 2) "cyj" ###---------------------有序集合zset操作---------------------### #新建zset,数字为分数 127.0.0.1:6379> zadd myzset 25 'a' (integer) 1 #添加元素,数字为分数 127.0.0.1:6379> zadd myzset 38 'b' (integer) 1 #添加元素,数字为分数 127.0.0.1:6379> zadd myzset 11 'c' (integer) 1 #查询,按分数从小到大排 127.0.0.1:6379> zrange myzset 0 -1 1) "c" 2) "a" 3) "b" #查询,按分数从大到小排 127.0.0.1:6379> zrevrange myzset 0 -1 1) "b" 2) "a" 3) "c" #查询某个元素对应的分数 127.0.0.1:6379> zscore myzset 'a' "25"
------------------ 完结!撒花 ✿✿ヽ(°▽°)ノ✿ ------------------