开始进入学习java web部分

一、Socket技术

  1. 字节流传输

    使用bytes[] 封装字节进行传输数据

  2. 文件传输

  3. 浏览器访问

    使用http协议进行访问

二、MySQL数据库

  1. 环境

    Phpstydy+navicat

  2. 数据库使用

    • 注释

      -- # /* ..... */

    • 控制窗口

      配置bat自动进入数据库

      cd E:\phpstudy_pro\Extensions\MySQL5.7.26\bin
      e:
      mysql -uroot -padminn #pause

    在命令行中使用SQL语句需要注意分号 ;

    • SQL语句

      • DQL 数据查询语言 select * from where

        • 创建数据库

          create database study1;

          默认字符集不是utf8,需要带属性创建

        • 删除数据库

          drop database study1;

        • 带指定utf8字符集创建数据库

          create database study1 DEFAULT CHARSET utf8 COLLATE utd8_general_ci;

        • 创建表

        • SQL数据类型

          字符串

          • char 长度固定为n 字符不够长则填充空格
          • varchar 任意长度n且不固定 不能超过n 不会填充空格

            数字
          • smallint 存储小整数 范围在(-32768,32767)
          • int (-2147483648,2147483647)
          • bigint
          • float 浮点型
          • double 双浮点型

            日期
          • date 存储日期
          • time 时间
          • year 年份
          • datetime 混合存储日期+时间
        • 修改表

          use study1

          alter table teacher add sex enum('男','女','未知') not null default '男';



        • 删除表

          create table test(id int primary key);
          drop table test ;![image](uploading...)

      • DML 数据操纵语言 insert update delete

        • 插入数据
          insert into 表名 values (数字,'字符','字符');
          insert into 表名(列名1,列名2,列名3) values (数字,'字符','字符');
        • 修改数据

          update 表明 set 列名='xxx' where 列名='xxx';
        • 删除数据

          delete from 表名

          delete from 表名 where 列名=xxx
        • 查询数据
          • DQL

            • 单表查询

              select * from 表名;

              select 列名 from 表名;

              • 去重 distinct

                select distinct 列名 from 表名;
              • 条件查询(in/not in)

                select * from 表名 where 列名=xxx;

                select * from 表名 where 列名 not in (字段1,字段2);
              • 模糊查询 (支持通配符)

                包含xxx的内容

                select * from 表名 where 列名 like `xxx`;

                不包含xxx的内容

                select * from 表名 where 列名 not like `xxx`;
              • 多条件查询(and/or/not)

                select * from 表名 where 列名1 not like `xxx` and 列名2 like 'zzz';

                select * from 表名 where 列名1 not like `xxx` or 列名2 like 'zzz';
            • 排序查询(asc/desc) 默认为空==asc正序

              select * from 表名 order by 列名 desc;

              select * from 表名 order by 列名1, 列名2 desc;

              // 先按照前面的规则排序 再按照后面的规则继续排

              select * from 表名 order by 列名1 desc, 列名2 asc;
            • 聚集函数

              select count(distinct 列名) from 表名 where 条件 //统计条件下的列名的行数

              select count(*) from 表名;// 统计有多少行数据

              count(*)统计所有信息

              count(distinct 列名) 去重统计

              sum() // 求和 需要数字类型

              avg() // 求平均值 需要是数字类型

              max() //最大值

              min() //最小值
            • 分组查询 group by

              select count(*) from 表名 group by 列名 // 根据列名统计总数

            select count(*) from 表名 group by 列名 having 列名 = '' //统计 根据列名包含字段的方式组排

            select count(*),sex from 表名 group by 列名 having 列名 = ''

            • 分页 limit(默认为前开后闭)

              select * from 表名 limit (x,x1]
            • 多表查询

              // 笛卡尔积

              select * from 表1,表2

              //对自己查询笛卡尔积

              select * from 表1 别名1,表1 别名2

              //对自己取笛卡尔积例子

              select * from student stu1,student stu2;



              // 只要sid相同的部分

              select * from student stu1,student stu2 where stu1.sid=stu2.sid;



              // inner join 内连接 返回交集

              //表名 inner join teach on 条件

              // 意思是根据 外键表 查找学生对应的老师

              select * from student inner join teach on student.sid = teach.sid;



              // 左连接 显示完整的左边和交集

              select *from student left join teach on student.sid = teach.sid;



              // 右连接 显示完整的右边和交集

              // 联系三张表

      • DDL 数据库定义 描述数据库中存储现实世界实体的语言,如何创建数据库,创建表

        • 1
      • DCL 数据库控制语言 grant deny revoke 只有 sysadmin,dbcreater, db_owner, db_securityadmin

        • 1

3. 设计数据库

  1. 规范

    • 数据库的每一列都是不可分割的基本数据项
    • 表中必须存在主键,其他属性必须完全依赖主键
    • 满足上一条的前提下,所有属性都不传递依赖于主键
    • BCNF
  2. 初步设计
    功能 账号密码 权限 crud
    老师 登录,上传,提交,修改,删除
    学院 登录,审阅,提交教学处,退回
    教学处 登录,审阅,提交打印,退回
    打印部 打印

2023年2月18日

mybatis是利用java的反射机制对jdbc进行深层封装

2023年2月19日

lombok注解生成映射中:

static没有setter和getter方法

如果强制生成 则出现 静态方法 getter和setter用法相同

public static void setName(String name){ Student.name = name; }

final没有setter方法

打印println是调用toString方法返回的内容

2023年2月21日

  • lombok (辣椒)

    注解一类

    • 常用

      • @Data
  • mybatis
    • mybatis-config.xml
    • sqlSessionFactoryBuilder



      每个session互相隔离,SQL session可以创建多个

2023年2月28日

  • mybatis注解开发

    • 问题 报错 mapper is not known to the MapperRegistry.

    • 问题原因 在工具类MybatisUtil中未修改映射路径

如果存在多个不一样的构造时,需要用到@Param指定参数位置,当遇到基本类型和对象类型同时存在时,需要在接收的sql中详细指定引参数所属的引用类型

2023年3月2日

mapper动态代理机制 完全看不懂

java_Web的更多相关文章

  1. Java_web 乱码和一些地址输错的问题(原创)

    1.首先记录下java_web的发布问题:安装好了Tomcat和MyEclipse后,从MyEcilpe中自动发布,不需要手动打开Tomcat 2.ipmort别人的程序后,先部署,后run后拉你的T ...

  2. Java_Web三大框架之Struts2

    今天正式接触Java_Web三大框架之Struts2框架.对于初学者来说,先来了解什么是框架技术: 一.“框架技术”帮我们更快更好地构建程序: 1.是一个应用程序的半成品 2.提供可重用的公共结构 3 ...

  3. Java_web项目中在Java文件里面通过类装载器对资源文件读取

    承接上一节:在eclipse完成对Java_web项目里面资源文件的读取 我们首先在src目录下创建一个资源文件db.properties 内容如下: url=127.0.0.1 name=root ...

  4. 在eclipse完成对Java_web项目里面资源文件的读取

    Java_web项目的资源文件一般有两种: 一种是存放数据之间有联系的文件,使用xml文件 另一种是存放数据之间没有联系的文件,使用properties文件 这里我们对properties文件读写做示 ...

  5. 使用eclipse写第一个Java_web的hello_world项目

    1.先创建一个Java_web项目 如果你没有下载过Tomcat服务器,不会配置,建议看一下我得这一篇博客:https://www.cnblogs.com/kongbursi-2292702937/p ...

  6. 使用InstallAnywhere工具打包Java_Web程序

      一.准备工作 1.    下载InstallAnywhere,并安装: 2.    下载解压版jdk1.7(示例为jdk1.7.0_75): 3.    下载解压版tomcat7.0以上版本(示例 ...

  7. 001课-java_web开发入门

    一.Tomcat服务器常见启动问题:(1).Java_home环境变量,由于tomcat服务器的bin目录中的一些jar文件必须使用到java类库,所以必须先配置Java_home环境变量.(2).端 ...

  8. java_WEB开发 防刷新

    客户端处理: 面对客户端我们可以使用Javascript脚本来解决,如下 1.重复刷新.重复提交 Ways One:设置一个变量,只允许提交一次. <script language=" ...

  9. 【转】java_web开发入门

    转载地址:http://www.cnblogs.com/xiaoqv/archive/2011/12/10/2283348.html 一.Tomcat服务器常见启动问题:(1).Java_home环境 ...

  10. java_web用户的自动登录模块的实现

    javaBean的代码 package bean; import java.io.Serializable; public class Admin implements Serializable{ / ...

随机推荐

  1. Linux驱动中的等待队列与休眠

    Linux驱动中的等待队列与休眠 原文:https://blog.csdn.net/mengluoxixiang/article/details/46239523?spm=1001.2014.3001 ...

  2. 题解:洛谷 P1137 旅行计划

    标签:图论,拓扑,dp 题意 给定一张 \(n\) 个点 \(m\) 条边的 DAG,对于每个 \(i\),求以它为终点最多经过多少个点? 思路 由于是 DAG,求的是终点 \(i\) 经过的所有点, ...

  3. B码对时方案,基于TI AM62x异构多核工业处理器实现!

    什么是IRIG-B码对时 IRIG-B(inter-range instrumentationgroup-B)码是一种时间同步标准,通常用于精确的时间测量和数据同步,广泛应用于电力.通信.航空等领域. ...

  4. Linux 应用案例开发手册——基于Zynq-7010/20工业开发板

    目 录 1 开发案例说明 4 2 Linux 常用开发案例 4 2.1 tl_led_flash 案例 4 2.2 tl_key_test 案例 7 2.3 tl_can_echo 案例 11 2.4 ...

  5. 合合TextIn - 大模型加速器

    TextIn是合合信息旗下的智能文档处理平台,在智能文字识别领域深耕17年,致力于图像处理.模式识别.神经网络.深度学习.STR.NLP.知识图谱等人工智能领域研究.凭借行业领先的技术实力,为扫描全能 ...

  6. Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯

    巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...

  7. PN转232网关模块接扫码枪与CPU通讯

    在现代物流.汽车生产线等领域,广泛使用条码扫码枪快速扫描产品条码,提高工作效率.为了保证条码扫码枪与CPU之间的准确通信,PN转232网关模块成为关键部件.本文将深入研究PN转232网关模块(BT-P ...

  8. 手把手帮助你搭建属于自己的个人博客,使用cervel部署,无需后端

    1.项目简介 项目使用了vue+elementUI技术栈,通过读取本地md文件实现博客文章的展示,使用vercel实现自动化部署,纯前端项目,无需后端 第一步:下载源码 仓库地址: github:ht ...

  9. 新年切红包-scratch小游戏

    程序说明: <新年切红包>是一款Scratch制作的小游戏,灵感来源于流行的切水果游戏.在这个游戏中,玩家需要用鼠标切割屏幕上不断飞出的红包,切割到红包将获得金币奖励,而切割到爆竹则会导致 ...

  10. 【Vue2】Filter 过滤器

    过滤器案例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...