Java学习手册:Java数据库面试问题

1、Java学习手册:Java基础知识点
2、Java学习手册:Java面向对象面试问题
3、Java学习手册:Java集合、泛型面试问题
4、Java学习手册:Java并发与多线程面试问题
5、Java学习手册:Java虚拟机面试问题
6、Java学习手册:Java IO面试问题
7、Java学习手册:Java反射机制面试问题
8、Java学习手册:Java网络编程面试问题
9、Java学习手册:Java异常面试问题
10、Java学习手册:Java设计模式面试问题
11、Java学习手册:Java数据库面试问题


一、如何通过JDBC访问数据库?

Java学习手册:如何通过JDBC访问数据库?


二、JDBC中Class.forName的作用是什么?

Java学习手册:JDBC中Class.forName的作用是什么?


三、JDBC中getString()方法与getObject()方法有什么区别?

Java学习手册:JDBC中getString()方法与getObject()方法有什么区别?


四、JDBC中Statement、PreparedStatement和CallableStatement的区别

Java学习手册:JDBC中Statement&PreparedStatement&CallableStatement


五、数据库原理

Java学习手册:数据库原理


六、什么是SQL注入?如何防止SQL注入?

什么是SQL注⼊: 通过sql语句的拼接达到⽆参数查询数据库数据⽬的的⽅法。

如将要执⾏的sql语句为 select * from table where name = “+appName+”,利⽤appName参数值的输⼊,来⽣成恶意的sql语句。

因此可以采⽤PrepareStatement来避免Sql注⼊,在服务器端接收参数数据后,进⾏验证,此时PrepareStatement会⾃动检测,⽽Statement不⾏,需要⼿⼯检测。

使用PrepareStatement,可以防止sql注入攻击,sql的执行需要编译,注入问题之所以出现,是因为用户填写 sql语句参与了编译。使用PrepareStatement对象在执行sql语句时,会分为两步,第一步将sql语句 “运送” 到mysql上预编译,再回到java端拿到参数运送到mysql端。预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该sql语句的语法结构了。用户填写的 sql语句,就不会参与编译,只会当做参数来看。从而避免了sql注入问题。


七、解释下驱动(Driver)在JDBC中的⻆⾊

JDBC驱动提供了特定⼚商对JDBC API接⼝类的实现,驱动必须要提供java.sql包下⾯这些类的实现:Connection, Statement, PreparedStatement,CallableStatement, ResultSet和Driver。


八、什么时候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值