什么是JDBC
SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库。
如下图所示:
DBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。
组成JDBC的2个包:
java.sql
javax.sql
开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。
详解各个对象
1.DriverManager:驱动管理对象
功能:1、注册驱动
2、获取数据库连接
2.Connection:数据库连接对象
功能:1、获取执行sql的对象
2、管理事务
3.Statement:执行sql的对象(重要!)
1、boolean execute(String sql):可以执行任意的sql(了解)
2、int executeUpdate(String sql):执行DML(insert、update、delete)语句,
执行DDL(create、alter、drop)语句(一般不经常用)
3、ResultSet executeQuery(String sql):执行DQL(select)语句
.PreparedStatement:执行sql的对象
1.SQL注入问题:(如小练习里面)
1.输入用户随便 ,输入密码:a' or 'a' = 'a'
2.sql:select * from user where username = 'dsfasdf' and password = 'a' or 'a' = 'a'
2.解决sql注入问题:使用PreparedStatement对象来解决
3.预编译的SQL:参数使用?作为占位符
4.步骤:1.导入驱动jar包
2.注册驱动
3.获取数据库连接对象 Connection
4.定义sql
注意:sql的参数使用?作为占位符。如:select * from user where username = ? and password = ?;
5.获取执行sql语句的对象 PreparedStatement Connection. PreparedStatement(String sql)
6.给?赋值
方法:setXxx(参数1,参数2)
参数1:?的位置编号 从1开始
参数2:?的值
7.执行sql,接受返回结果
8.处理结果
9.释放资源
抽取JDBC工具类:JDBCUtils
目的:简化书写
分析:
1.注册驱动也抽取
2.抽取一个方法获取连接对象
需求:不想传递参数(麻烦),还得保证工具类的通用性
解决:配置文件
jdbc.properties
url =
user =
password =