9.19中国电信重庆公司面试
1.String和StringBuffer的区别?
String、StringBuild、StringBuffer三者详解及区别_strbuffer和strbuild_叶里随风的博客-CSDN博客
2.MySQL和Redis的区别?
MySQL和Redis的区别_mysql redis_leizi146的博客-CSDN博客
3.Mybatis的特点?
什么是 MyBatis?有哪些优点和缺点?_mybatis框架优缺点_码农落落的博客-CSDN博客
4.SpringBoot框架
5.MySQL数据库中用到的占位符?
MySQL的占位符该用什么(mysql中占位符用什么)-数据库运维技术服务 (dbs724.com)
在使用MySQL数据库进行数据插入、更新、查询等操作时,经常会用占位符代替SQL语句中的变量或参数,这种方式能够有效保护数据库的安全性和可靠性。
常见的占位符类型:“?”占位符、命名参数占位符、“??”占位符等。
“?”占位符:特点是占位符必须按照顺序一一对应,否则会影响SQL语句的执行。
命名参数占位符:特点是在SQL语句中使用具有描述性的标记来代替占位符。这种方式可以更清晰地表示SQL中各个参数的含义,使程序的可读性更强。
“??”占位符:特点是在SQL语句中使用“??”来代替占位符。一般用于动态生成SQL语句的情况,可以提高代码的简洁性和可读性。注意:使用“??”占位符时,需用SQL字符串拼接的方式将具体的参数插入到SQL语句中,而不是通过参数列表来传递。这种方式的缺点是易被SQL注入攻击,因此使用时需谨慎。同时,在一些数据库API中,“??”占位符的支持不太完善,可能需要进行一些兼容性处理。
6.什么情况会发生SQL注入?
java statement 参数_java中statement、prepareStatement的相关理解_Runhua Zhao的博客-CSDN博客
statement 为非预编译语句,每次执行会去数据库 生成一条语句执行。
prepareStatement预编译语句,不用每次执行都去生成一条执行语句,而是生成一次之后可以多次调用使用,而statement是每次都会将拼接的 String字符串 去数据库生成语句执行。
预编译prepareStatement是statement更有效率。