SUN 公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java 操作数据库的)规范,俗称 JDBC
这些规范的实现由具体的厂商去做
对于开发人员来说,我们只需要掌握JDBC接口的操作即可!
第一个JDBC程序
public class JdbcDemo{
public static void main(String[] args) throws ClassNotFoundException,SQLException{
//1.加载驱动
class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
//2.用户信息和url
String url = "jdbc:mysq1://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//3.连接成功,数据库对象Connection 代表数据库
Connection connection = DriverManager.getConnection(url,username,password);
//4.Statement 执行SQL的对象
Statement statement = connection.createStatement();
//5.执行SQL的对象 去执行SQL,可能存在结果,查看返回结果
String sql = "SELECt * FROM users";
ResultSet resultSet = statement.executeQuery(sql); //返回的结果集,结果集中封装了我们全部的查询出来的结果
while(resultSet.next()){
System.out.println("id = " + resultSet.getObject("id"));
System.out.println("name = " + resultSet.getObject("NAME"));
System.out.println("pwd= " + resultSet.getObject("PASSWORD"));
System.out.println("email= " + resultSet.getObject("email"));
System.out.println("birth= " + resultSet.getObject("birthday"));
//以上是users表中的字段
}
//6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
步骤总结:
1、加载驱动
2、连接数据库 DriverManager
3、获得执行sql的对象 Statement
4、获得返回的结果集
5、释放连接
JDBC中对象解释
DriverManager
class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
Connection connection = DriverManager.getConnection(url,username,password);
//connection 代表数据库
//数据库设置自动提交
//事务提交
//事务回滚
Statement:执行SQL的对象(不安全,SQL注入)
statement.executeQuery(); //查询操作返回Resultset statement.execute(); //执行任何SQL statement.executeUpdate(); //更新、插入、删除。都是用这个,返回一个受影响的行数
ResultSet:查询的结果集:封装了所有的查询结果
获得指定的数据类型
resultset.getObject(); //在不知道列类型的情况下使用 //如果知道列的类型就使用指定的类型 resultset.getString(); resultset.getInt(); resultset.getFloat(); resultset.getDate(); resultset.getObject(); ...
遍历
resultSet.beforeFirst(); //移动到最前面 resultSet.afterLast(); //移动到最后面 resultSet.next(); //移动到下一个数据 resultSet.previous(); //移动到前一行 resultSet.absolute(row); //移动到指定行
PreparedStatement 对象
PreparedStatement 可以防止 SQL 注入。
效率更好!



