JDBC
API可做三件事:
与数据库建立连接、执行SQL 语句、处理结果
DriverManager :
依据数据库的不同,管理JDBC驱动
Connection :
负责连接数据库并担任传送数据的任务
Statement :
由 Connection 产生、负责执行SQL语句
Connection和Statement都是接口
PreparedStatement
Statement
conn.createStatement(String)
sql是拼接的 容易被sql注入
PreparedStatement
conn.prepareStatement(Object)
PreparedStatement 是继承了Statement 他是支持参数配置的
他不容易被sql注入
注意
Statement 和 prepareStatement 这些方法基本一样
但是Statement执行的时候要传入sql prepareStatement在创建的时候就已经将sql传入
prepareStatement使用?当做占位符 去填充参数
插入参数和执行
set数据类型(索引, 参数)
使用prepareStatement时使用,但是索引从1开始的execute()
执行语句
返回结果
增删改
executeUpdate()
返回受影响的行数
查询
executeQuery()
返回一个ResultSet的结果集
ResultSet 一开始指针指向 第一行数据的上面
当我们调用他的next()方法 指针会下移 当没有数据的时候 就会返回false
根据这个特性我们可以使用while循环进行遍历
getxxxxx() 索引但是从1开始的 还可以通过列名拿到数据
获取元数据
ResultSetMetaData metaData = rs.getMetaData();
拿到有多少列
int count = metaData.getColumnCount();
getColumnLabel(i)
通过索引去拿到我们的列名 如果有别名就先拿别名
注意
不管是创建了执行对象 还是连接对象 还是结果集 我们都最好主动的去关闭 以免浪费资源
关闭顺序 先关闭结果集在关闭执行对象 最好连接