MySql笔记-4

DBCP

  • DataBaseConnectionPool: 数据库连接池
  • 作用: 可以将数据库连接重用,避免频繁开关连接导致的资源浪费MySql笔记-4_第1张图片
  • 如何使用数据库连接池?
    • 从文档服务器中找到连接池的依赖

注册功能:

  • 创建user表use empdb;create table user(id int primary key auto_increment,username varchar(20),password varchar(20),nick varchar(20));
  • 登录的SQL语句: select count(*) from user where username=‘tom’ and password=‘123456’;

SQL注入

select count(*) from user
where username=‘abcd’ and password=’’ or ‘1’=‘1’

  • 什么是SQL注入?
    1. 用户往传值的地方传递进来了SQL语句导致原有SQL语句的逻辑发生改变,从而达到一些非法目的.这个过程叫做SQL注入.

PreparedStatement

  • 带有预编译效果的执行SQL语句的对象
  • 通过此对象可以解决SQL注入的问题:
    • 将编译SQL语句的时间点从执行时提前到了创建时, 在创建PreparedStatement对象时将SQL语句进行编译,此时用户输入的内容还没有放到SQL语句里面, 这时编译的好处是将SQL语句业务逻辑锁死, 之后再将用户输入的内容添加进去,这样原有SQL语句的逻辑就不会被用户输入的内容改动,从而避免了SQL注入的问题.

404状态码

  • 意思是客户端找不到服务器的资源包括静态资源和动态资源
  • 静态资源404:
    • 检查请求的路径拼写是否正确
    • 检查静态资源文件是否在static下的正确位置
    • 如果路径和文件位置都没有问题,重新编译工程: Build->ReBuild 然后重启工程再测试
  • 动态资源404
    • 检查请求的路径拼写是否正确
    • 检查Controller类是否创建在了cn.tedu.工程名这个包下面
    • 检查@RequestMapping注解里面的路径是否正确,这里的路径必须以/开头
    • 如果路径和文件位置都没有问题,重新编译工程: Build->ReBuild 然后重启工程再测试

客户端的发出请求的几种方式

  1. 在浏览器地址栏中输入请求地址 回车发出请求
  2. 在html页面中通过超链接发出请求
  3. 在html页面中通过form表单发出请求
  4. 通过前端框架发出异步请求

通过@ResponseBody注解简化响应代码MySql笔记-4_第2张图片

端口被占用MySql笔记-4_第3张图片

  1. 检查是不是有其他正在运行的工程,将其关闭后在运行新工程
  2. 如果没有没有正在运行的工程,可通过以下几种方式:
    • 重启电脑
    • 修改工程的端口号MySql笔记-4_第4张图片
    • 在命令行中 执行以下指令找到占用8080端口的进程,然后执行杀掉该进程的指令, 释放出8080端口MySql笔记-4_第5张图片

如何获取客户端传递过来的请求参数

  1. 三种接收参数的方式:
    • 通过HTTPServletRequest对象挨个获取参数MySql笔记-4_第6张图片
    • 直接在方法的参数列表中声明的方式 接收参数MySql笔记-4_第7张图片
    • 直接在方法的参数列表中声明的方式 接收参数MySql笔记-4_第8张图片
    • 通过自定对象直接将多个参数封装MySql笔记-4_第9张图片

BMI身体指数测试练习

  1. 在static静态资源文件夹中 创建一个bmi.html页面
  2. 创建BmiController,添加bmi方法处理/bmi请求, 接收传递过来的很高和体重, 计算出bmi的值, 通过bmi的取值范围给客户端返回不同的提示信息

你可能感兴趣的:(mysql,数据库,sql)