JDBC(重点)

JDBC:(Java Database Connectivity,简称JDBC)是用来规范客户端程序如何来访问数据库的应用程序接口,记住它是一个接口,这个接口里面有这5大类

    1.DriverManager:驱动管理对象

    2.Connection:数据库连接对象

    3.Statement:执行sql的对象

    4.ResultSet:结果集对象

    5.PreparedStatement:执行sql的对象

数据库驱动 (驱动就是硬件和操作系统之间的翻译官)

驱动:声卡,显卡,数据库。

数据库直接放到java里面不行,用不了 。

我们的程序 会通过数据库驱动,和数据库打交道

JDBC(类似于计算机的操作系统,我们只需和操作系统联系,就可以操纵电脑的底层硬件等)

sun公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC,这些规范的实现由具体的厂商去做

对于开发人员来说,我们只需要掌握JDBC的操作即可。

java.sql

javax.sql

还需要导入一个数据库驱动包mysql-connector-java-5.1.47.jar包,(官网下)。

 数据库中的数据

测试代码:

 1 public class jdbcFirstDemoTest01 {
 2     public static void main(String[] args) throws ClassNotFoundException, SQLException {
 3         // 1)加载驱动
 4         Class.forName("com.mysql.jdbc.Driver");  // 这里要抛出异常
 5 
 6         // 2)url ,用户名,密码,连接位置
 7         String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
 8         String name = "root";
 9         String password = "123456";
10 
11         // 3)点击连接  注意这里的参数顺序不要搞错
12         Connection connection = DriverManager.getConnection(url,name, password);// 注意这里也要抛出异常
13 
14         // 4)打开一个查询窗口
15         Statement statement = connection.createStatement();
16 
17         // 5)输入查询语句,点击执行
18         String sql = "SELECT * FROM users";
19         ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集
20 
21         // 6)输出结果
22         while(resultSet.next()) {
23             System.out.print("id :" + resultSet.getObject("id"));
24             System.out.print("name :" + resultSet.getObject("name"));
25             System.out.print("password:" + resultSet.getObject("password"));
26             System.out.print("email:" + resultSet.getObject("email"));
27             System.out.print("birthday :" + resultSet.getObject("birthday"));
28         }
29        // 关闭打开的连接,不关的话造成资源浪费
30         resultSet .close();
31         statement.close();
32         connection.close();
33 
34     }
35 }
代码解析:
 1)String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
   协议://主机地址:端口号/数据库名?参数1&参数2&参数3

 2)connection 就代表数据库 
connection.rollback(); // 事务回滚
connection.commit(); // 事务提交
connection.setAutoCommit(); // 事务自动提交

3)Statement:执行sql语句的类。它的对象用于向数据库发送SQL语句,完成对数据库的增删改查
   Statement.executeQuery();  // 查询操作返回ResultSet
   Statement.execute(); // 执行任何sql
statement.executeUpdate(); // 更新,插入,删除都是用这个,返回受影响的行数,这个也可以用来查,只是效率低一点

4) ResultSet:查询的结果集,封装了所有的内容
resultSet.next(); // 移动到下一个
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast(); // 移动到最后面



连接数据库的函数getConnection源码

结果:

public class jdbcFirstDemoTest01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1)载驱动
Class.forName("com.mysql.jdbc.Driver"); // 里要抛出

// 2)url ,名,密接位置
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
String name = "root";
String password = "123456";

// 3)击连接 注意里的参数顺序不要搞错
Connection connection = DriverManager.getConnection(url,name, password);// 注意里也要抛出

// 4)个查询窗
Statement statement = connection.createStatement();

// 5)查询语句,点击执
String sql = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集

// 6)
while(resultSet.next()) {
System.out.print("id :" + resultSet.getObject("id"));
System.out.print("name :" + resultSet.getObject("name"));
System.out.print("password:" + resultSet.getObject("password"));
System.out.print("email:" + resultSet.getObject("email"));
System.out.print("birthday :" + resultSet.getObject("birthday"));
}
// 关闭,造成源浪
resultSet .close();
statement.close();
connection.close();

}
}
原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14638000.html