JDBC

1.数据库驱动

这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装响应的驱动程序才能够使用声卡和网卡,同样的道理,我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过响应的数据库驱动程序,通过驱动程序去和数据库打交道,如下图所示:

 

2.JDBC介绍

SUN公司为了简化,统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。

这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库。

如下图所示:

 

 JDBC全称为:Java DataBase Connectivity(java数据库连接),它主要由接口组成。

组成JDBC的两个包:java.sql,javax.sql

开发JDBC应用需要以上两个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)

3.编写JDBC程序

搭建实验环境

 1 CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci; 
 2 USE jdbcStudy; 
 3 
 4 CREATE TABLE users( 
 5     id INT PRIMARY KEY, 
 6     NAME VARCHAR(40), 
 7     PASSWORD VARCHAR(40), 
 8     email VARCHAR(60), 
 9     birthday DATE 
10 );
11 
12 INSERT INTO users(id,NAME,PASSWORD,email,birthday) 
13 VALUES(1,'zhansan','123456','zs@sina.com','1980-12-04'), 
14 (2,'lisi','123456','lisi@sina.com','1981-12-04'), 
15 (3,'wangwu','123456','wangwu@sina.com','1979-12-04');

 

下载数据驱动包

Mysql_JDBC官网:https://dev.mysql.com/downloads/connector/j/

 

 新建一个Java工程,并导入数据驱动

 

 

 

 编写程序从user表中读取数据,并打印在命令行窗口中

 1 public class JdbcFirstDemo {
 2     public static void main(String[] args) throws Exception{
 3         //要连接的数据库URL
 4         String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC";
 5         //连接的数据库时使用的用户名
 6         String username="root";
 7         //连接的数据库时使用的密码
 8         String password="root";
 9         //1.加载驱动
10         //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
11         Class.forName("com.mysql.cj.jdbc.Driver");//推荐使用这种方式来加载驱动
12         //2.获取与数据库的连接
13         Connection connection = DriverManager.getConnection(url, username, password);
14         //3.获取用于向数据库发送sql语句的statement
15         Statement statement = connection.createStatement();
16         String sql = "select id,name,password,email,birthday from users";
17         //4.向数据库发送sql,并获取代表结果集的resultset
18         ResultSet resultSet = statement.executeQuery(sql);
19         //5.取出结果集的数据
20         while(resultSet.next()){
21             System.out.println("id="+resultSet.getObject("id"));
22             System.out.println("name="+resultSet.getObject("name"));
23             System.out.println("password="+resultSet.getObject("password"));
24             System.out.println("email="+resultSet.getObject("email"));
25             System.out.println("birthday="+resultSet.getObject("birthday"));
26         }
27         //6.关闭连接,释放资源
28         resultSet.close();
29         statement.close();
30         connection.close();
31     }
32 }

 

 结果:

 

 

 

 

121

posted @ 2020-09-22 23:19  罗晓峥  阅读(203)  评论(0编辑  收藏  举报