什么是sql注入攻击,如何预防
sql注入攻击指的是应用程序对用户输入数据的合法性没有判断或者过滤不严格,在sql语句中插入任意的恶意语句进行非法操作。
预防方式1:使用预编译语句比如PrepareStatement,用户输入的所有数据都以参数的形式传递。
预防方式2:对用户输入进行合法判断和验证,去除非法字符和关键字。
介绍一下mysql常见数据类型
首先是数字类型,包括整型和浮点型。整型有5种,tinyint,smallint,mediumint,int,bigint分别是1个字节,2个字节,3个字节,4个字节,8个字节。浮点型有三种,float(m,n),单精度最多是四个字节,最多存储7个有效位,float8个字节,最多存储15个有效位。decimal(m,n)m+2个字节.
字符类型:分为定长的char,不定长的varchar。
定长的char在长度不够时候会以空格填充,在存储上比较快,但比较浪费空间。而varchar存储上比较节约空间,还有文本类型Text用来存储长文本,无需指定长度。
日期类型,有date(日期),time(时间),datetime(日期时间),timestamp(日期时间)
datetime和timestamp的区别
1.DATETIME保存普通日期时间,TIMESTAMP保存UTC时间,可精确到毫秒。
2.二者存储范围为1000-01-01 00:00:00~9999-12-31 23:59:59,TIMESTAMP存储范围为 1970-01-01 00:00:00 ~ 2038-01-19 03:14:07