程序员与数据库打交道的JDBC知识概要

1.JDBC全称:Java database connectivity,Java数据库链接。程序员

(1)           JDBC是一种用于执行SQL语句的Java API,为多种关系数据库提供多种统一访问,由一组Java语言编写的类和接口组成。sql

(2)           程序员JDBC API程序能够访问全部的数据库。数据库

(3)           Java语言和JDBC结合,程序员没必要为不一样的平台写不一样的应用程序,只需写一遍程序就可使它在任意平台上运行。安全

(4)           JDBC简单讲作三件事:与数据库创建链接,发送、处理数据库语句并处理结果。oracle

3.加载Oracle的JDBC驱动程序接口

Class.forName(“Oracle.jdbc.driver.OracleDriver”)资源

4.execute、executeQuery、executeUpdate字符串

 executeQuery:返回结果集(ResultSet),一般用于select语句。get

executeUpdate:返回此操做影响的行数(int),一般用于insert,update,delete语句。it

execute返回Boolean值, 一般用于insert,update,delete语句。

5.ResultSet处理的典型代码:

while(rs.next()){

   String ename = rs.getString(1);

   int empno = rs.getInt(“empno”);

}

6.JDBC记载4大步骤

(1)加载一个Driver驱动;

(2)建立数据库链接(Connection)

(3)建立SQL命令发布器Statement,经过statement发送命令并获得结果。

(4)处理结果(select语句和resultset),处理完毕后关闭数据库资源。

7.SQL注入攻击

好比JDBC完成用户的登陆功能

(1)           SQL语句采用了字符串拼接技术String sql = “select * from t_user where userno= ‘”+userno+”’ and password =+upwd+”’”;

(2)           继而使用SQL命令发布器发送SQL命令并获得结果:

Stmt.executeQuery(sql);

(3)           如输入:userno = “ abc:,password =” abc ‘or’ 1’ = 1”;

因而上述SQL字符串就变为sql = “select * from t_user where userno =’ abc’ and password =’ abc’ ‘or’ 1’ = ‘ 1”;

此语句的用户名和密码并不正确,可是仍然能访问数据表,因此存在风险,这就是所谓的SQL注入攻击。

(4)           解决方案:采用statement的子接口PreparedStatement来实现。

*1.可读性强不繁琐

*2.安全

*3屡次执行同一条SQL语句,效率高

例:

  Connection conn = null;

  Statement stmt = null;

  ResultSet rs = null;

try{

   Class.forName(“oracle.jdbc.driver.OracleDriver”);

   conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”,”scott”,”tiger”);

   stmt = conn.createStatement();

 String sql = “select * from emp”;

rs = stmt.executeQuery(sql);

相关文章
相关标签/搜索