JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

时间:2021-10-14 03:46:25

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)作者:王可利(Star·星星)

 

JDBC(Java Data Base Connectivity,java数据库连接)

是Java数据库连接技术的简称,提供连接各种常用数据库的能力。

1.DriverManger类

    依据数据库的不同,管理JDBC驱动

2.Connection 接口

    负责连接数据库并担任传送数据的任务,如:连接数据库,要有一个通道,那么这个通道就是Connection。

3.Statement 接口

    由 Connection 产生、负责执行SQL语句,如:有了通道了,我开个车过去就是Statement,执行SQL语句。

4.ResultSet 接口

    负责保存Statement执行后所产生的查询结果,如,开了车过去了,把东西拿回来,那个东西就是ResultSet。

 

JDBC的工作原理

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

 

 

JDBC API 主要功能:与数据库建立连接、执行SQL语句、处理结果。

 

JDBC工作原理

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

1.加载JDBC驱动(Class.forName(驱动类))

2.连接数据库(地址、帐号、密码)Connection 

3.获取到对象,执行SQL语句,返回结果。Statement

4.使用完了释放对象 (.close)

 

下面进行代码对数据库的  增、查 、删、改、crud

实例一代码如下:(增加)

快捷键:快捷导入包:Ctrl + shift + O

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement;
 6 //实例一:纯Java代码 连接数据库
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//声明Statement变量
11         
12         String sql = "INSERT INTO star_studyone (id,name,sex,age) VALUES ('1', '星星', '男', '12');";
13         
14         //1.加载驱动
15         try {
16             Class.forName("com.mysql.jdbc.Driver");//加载驱动类
17         } catch (Exception e) {
18         }
19         
20         //2.获得连接对象
21         try {
22             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy", "root", "123456");//连接到数据库
23             System.out.println("连接成功!");
24         } catch (Exception e) {
25             
26         }
27         
28         //3.获取到Statement对象
29         try {
30             stmt = conn.createStatement();//获取到Statement对象
31             stmt.execute(sql);//Statemen对象执行 SQL语句
32         } catch (Exception e) {
33             
34         }
35         
36         //4.关闭对象
37         //先添加的对象后关闭,后添加的对象先关闭
38         try {
39             stmt.close();
40             conn.close();
41         } catch (Exception e) {
42         }
43     }
44 }

 

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

 

实例二代码如下:(查询)

 

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement;
 4 import java.sql.ResultSet;
 5 
 6 //实例二:
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//声明Statement变量
11         ResultSet rs =null; 
12         
13         String sql = "SELECT *FROM star_studyone";
14         
15         try {
16             //加载驱动
17             Class.forName("com.mysql.jdbc.Driver");
18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
19             stmt = conn.createStatement();
20             rs = stmt.executeQuery(sql);//返回查询
21             
22             //遍历rs 
23             //rs.next();指针下移 返回的是布尔值
24             
25             while (rs.next()) {
26                 //在MYSQL数据库中索引从1开始
27 //                System.out.println(rs.getInt(1)+"\t");
28 //                System.out.println(rs.getString(2)+"\t");
29 //                System.out.println(rs.getString("sex")+"\t");
30 //                System.out.println(rs.getInt("age")+"\t");
31                 
32                 System.out.println(rs.getObject(1)+"\t");
33                 System.out.println(rs.getObject(2)+"\t");
34                 System.out.println(rs.getObject("sex")+"\t");
35                 System.out.println(rs.getObject("age")+"\t");
36                 
37             }
38             System.out.println("=============================");
39             
40         } catch (Exception e) {
41             
42         }finally{
43             //如果他是空,才可以关
44             try {
45                 if (null != rs) {
46                     rs.close();
47                 }
48                 if (null != stmt) {
49                     stmt.close();
50                 }
51                 if (null != conn) {
52                     conn.close();
53                 }
54                 
55             } catch (Exception e2) {
56                 
57             }            
58         }        
59     }
60 }

 

实例代码三:(改、删除)

 

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.Statement; 5 
 6 //实例三:
 7 public class star {
 8     public static void main(String[] args) {
 9         Connection conn = null;
10         Statement stmt = null;//声明Statement变量
11         
12         //String sql = "UPDATE star_studyone SET name='星星哥哥' WHERE id = '5' ";//SQL改变语句
13         String sql = "DELETE FROM star_studyone WHERE id = '5' ";//SQL删除语句
14         
15         try {
16             //加载驱动
17             Class.forName("com.mysql.jdbc.Driver");
18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
19             stmt = conn.createStatement();
20             stmt.executeUpdate(sql);
21                 
22             System.out.println("=========成功连接=========");
23             
24         } catch (Exception e) {
25             
26         }finally{
27             //如果他是空,才可以关
28             try {
29                 if (null != stmt) {
30                     stmt.close();
31                 }
32                 if (null != conn) {
33                     conn.close();
34                 }
35                 
36             } catch (Exception e2) {
37                 
38             }            
39         }        
40     }
41 }

自己犯的错误总结:

1. 导包不要导错。导这类的包  import java.sql.Connection;

2. String url = "jabc:mysql://主机名或地址:端口号/数据库的名称";
    如:
    String url = "jabc:mysql://localhost:3306/StarXiaoLi";

3. Class.forName("com.mysql.jdbc.Driver");  复制类名的时候不能有 .class 多出来

4. String sql = "INSERT INTO star_studyOne (id,name,sex,age) VALUES (1,'星星','男',12)";

    格式是这样的,字符要有单引号,INSERT INTO 表名(这里直接是属性名字,没有单引号的)VALUES (1,'星星','男',12)";