发表于: 2019-12-27 00:17:45
2 1111
今天完成的事情:
1.根据师兄的指点,学习字段存储类型的选择,并且修改原来的表。
2.解决了数据中文乱码的问题(使用navicat导出没问题)。
```
/*
Navicat Premium Data Transfer
Source Server : 本地
Source Server Type : MySQL
Source Server Version : 80018
Source Host : localhost:3306
Source Schema : school
Target Server Type : MySQL
Target Server Version : 80018
File Encoding : 65001
Date: 26/12/2019 19:21:16
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for jnshu_copy1
-- ----------------------------
DROP TABLE IF EXISTS `jnshu_copy1`;
CREATE TABLE `jnshu_copy1` (
`id` bigint(10) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`qq` bigint(20) NULL DEFAULT NULL,
`object` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
`graduated_school` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
`daily_report` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`aims` tinytext CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
`brother` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
`from` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 39868 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of jnshu_copy1
-- ----------------------------
INSERT INTO `jnshu_copy1` VALUES (6318, '一丈青', 572232978, 'JAVA工程师', '湘潭大学', 'https://www.jnshu.com/daily/110073?total=2&page=1&uid=40015&sort=0&orderBy=3 https://www.jnshu.com/daily/110035?total=2&page=2&uid=40015&sort=0&orderBy=3', '年薪百万,宝马GT', '王鹏', '知乎');
INSERT INTO `jnshu_copy1` VALUES (95533, '龙傲天', 2333333, '爪哇工程师', '哈尔滨佛教大学', 'http://hhhhhhhhhh', '我佛慈悲', '孙策', '少年包青天');
SET FOREIGN_KEY_CHECKS = 1;
```
3.尝试大批量导入数据,测试索引对查询性能的影响。
为了测试抄了一段 sql,顺便测试了一下 id 字段的自增长属性。从截图中可以看到,建立索引后查询时间有了数量级的减少。
```
DROP PROCEDURE IF EXISTS proc_initData;
DELIMITER $
CREATE PROCEDURE proc_initData()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<=10000 DO
INSERT INTO jnshu(name,object,daily_report) VALUES(i,'前端','http://hh');
SET i = i+1;
END WHILE;
END $
CALL proc_initData();
```
4.将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
5.下载Java 8,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中。
JDK:开发环境
JRE:纯运行环境
6.下载Maven3,并配置好环境变量。(忽略报错信息,这是我装 conda 弄的···)
7.下载Eclipse,配置好外部Maven。
参照这篇文章设置的。
8.创建一个新的maven项目。
参照这篇博文建立了一个maven项目。
但是总感觉我的项目和大家的不一样?用到了 tomcat,我也不知道对不对,反正跑起来了。
eclipse只支持到 tomcat 8.0,装个8.5都无法识别,害我删了又装。
9.在src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。
这句话我真没看懂,clean我找到了,install 是什么意思···不是直接 run 吗,这个本地 .m2 文件夹我也没找着,在上一个任务设置外部maven的时候设置了一个repository文件夹,如果说的是这个文件夹的话,那里面确实有一些文件,截图如下:(我也不知道对不对,可以的话麻烦师兄帮我看一下)
明天计划的事情:
1.想先去找点资料,在心里先建立一个大致的知识框架。如:整个后端开发需要使用的框架和工具是什么?为什么需要这些工具?他们都有什么用?他们有替代品吗?他们是怎么联动起来处理问题的?等等···
又或者处于混沌期的我应该继续不求甚解的做任务,等任务一结束再回过头来整理?
2.编写DAO,分别JdbcTemplate和Mybatis连接数据库。
遇到的问题:
1.sql语句运行时间
昨天我做任务都是直接看terminal里面运行完之后会有个时间,看到这个运行时间都是 0.00 秒。还以为是我数据太少了,今天插入数据还是显示这个时间我才考虑到可能应该用别的方法来查询sql运行时间。方法如下:
```
show variables like 'profiling'; 查看测试时间是否开启
set profiling=1 开启
show profiles; 查看最近的 sql 命令执行时间
```
2.我感觉到自己确实不懂得东西太多了,整个体系我现在做的这些东西到底是干嘛用的以及他们是怎么连在一起运行的我都不是太了解,我内心的疑问很多,也有很多不正确的想法需要被纠正。
maven 是一个框架,能够帮助我们更好的做项目,而不是像以前那样写一些黑乎乎的命令行。
tomcat 是一个能够处理jsp的应用容器,比一般的静态服务器功能要强大。
jsp 就是在 html 里面放上 java 代码。
servlet 就是把 jsp 编译成 .class 文件,这样就能像java一样的运行,内部就是根据预定的逻辑拼接 html 文件然后返回给浏览器去渲染网页?
收获:
1.合理选择字段类型(在这里简单提点一些内容,详细信息点我。)
(1)数值:MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。
(2)字符串类型:MySQL 提供了 8 个基本的字符串类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。
- CHAR 和 VARCHAR 类型:CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从 0-255。
比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。(char 定长,varchar 变长。如果确切知道字符串长度,比如就在50~55之间,那就用 CHAR 因为 CHAR 类型由于本身定长的特性使其性能要高于 VARCHAR)
TEXT 和 BLOB 类型:对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型。根据存储数据的大小,它们都有
不同的子类型。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。(BLOB 类型区分大小写,而 TEXT 不区分大小写。)
(3)复合类型:MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。一个 ENUM 类型只允许从一个集合中取得一个值;而 SET 类型允许从一个集合中取得任意多个值。
评论