一JDBC概述
为什么要使用JDBC?
JDBC:Java database connectivity SUN公司提供的公司提供的一套操作数据库的标准规范JDBC规范(掌握四个核心对象)
1.DriverManager:用于注册驱动
2.Connection:表示与数据库创建的连接
3.Statement:操作数据裤sql语句的对象
4.ResultSet:结果集或一张虚拟表
开发JDBC的步骤
- 创建Java项目,添加驱动
- 实现JDBC的操作
.注册驱动
创建链接
得到执行sql语句的statement对象
处理结果
关闭资源
常用类的讲解
DriverManager:
- 注册驱动
DriverManager.registerDriver(new com.mysq.jdbc.Driver());
强烈不推荐:因为要注册两次驱动并且要依赖jar包
解决方法:Class.forName("com.mysql.jdbc.Driver");
- 得到连接对象
static Connection getConnection(String url, Strig user, String password)
getConnection("jdbc://mysql://localhost:3306/day06","root", "root");
jdbc://mysql://localhost:3306/day06:协议,子协议,IP和端口号/数据库
Connection接口:一个连接
接口的实现在数据库的驱动中。所有的数据库的操作都是基于对象的。
语句:Statement createStatement();//创建操作sql语句的对象
Statement接口:操作sql语句,并且返回相应的结果对象。
ResultSet executeQuery(String sql);只能执行select语句
int executeUpdate(String sql);执行DML(insert update delete)语句
boolean execute(String str)此方法可以执行任意的sql语句。返回boolean值,表示是否返回ResultSet结果集,是为true否为false
ResultSet接口:封装结果集
提供一个游标,默认游标指向第一列。
调用一次next()方法,游标下移一次。
通过getObject()方法得到这这虚拟表中的数据。- 移动光标的方法:boolean next()、boolean previous()
boolean absolute(int row) 参数是当前行的索引
void afterLast():将光标移动到末尾
void beforeFirst() :位于第一行- 移动光标的方法:boolean next()、boolean previous()
SQL注入问题:preparedStatement
preparedStatement特点:
性能要高
会把sql语句先编译
过滤用户输入的关键字
conn = DBUtils.getConnection();
String sql = "select * from users where name=? and password=?"
ps = conn.prepareStatement(sql); //得到执行语句的对象
ps.setString(1, name);
ps.setString(2, password);
ps.executeQuery();