JDBC(Java DataBase Connectivity Java)是Java语言操作数据库。
JDBC本质:sun公司定义一套关系型数据库的规则,即接口。各
个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以
使用这套编程,真正执行的代码是驱动jar包中的实现类。
理解与代码
导包文件:https://pan.baidu.com/s/1u27PEpasQrOyhrn8ue1VAA
理解
* 1、Driver,注册驱动
* 2、URL,USER,PASSWORD获取连接
* 3、SQL
* 4、执行SQL
* 5、返回结果集
* 6、关闭资源
代码
package com.llhc.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 1、Driver,注册驱动
* 2、URL,USER,PASSWORD获取连接
* 3、SQL
* 4、执行SQL
* 5、返回结果集
* 6、关闭资源
* @author 朱君
*
*/
public class JdbcUtils {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、告诉JVM查找并加载Driver指定类到内存中,也就是将Mysql的Driver注册到DriverManager
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection c=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
//3、写SQL
String sql = "select * from admin";
//4、执行SQL,Statement用来执行SQL
Statement s=c.createStatement();
//5、返回结果集
ResultSet rs =s.executeQuery(sql);
while(rs.next()){
int id=rs.getInt("id");
String user=rs.getString("username");
System.out.println(id+user);
}
//6、关闭资源
c.close();
s.close();
}
}
小问题(SQL注入)
一些sql特殊关键字参与字符串拼接,造成数据库安全问题(密码:a' or 'a' = 'a)
解决方案:
首先,用 ?作为占位符,select * from user where name= ?。
其次,给 ?赋值,setXxx(参数1,参数2)