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);