JDBC的基础操作

步骤

1) 导入驱动jar包

包的名称为

 

2) 注册驱动。  使用Mysql5版本后的数据库可以省略该步骤。

语法:

 

class.forname(com.mysql.jdbc.Driver);

 

Mysql中这句话是固定写法。

3) 获取连接对象Connection

格式:

Connection con=DriverManager.getConnection(url);

url(Uniform Resource Location):指的是统一资源定位符。

Mysql中,格式为jdbc:mysql://ip地址(域名):端口号/数据库名称。例如:jdbc:mysql://localhost:3306/db3。若使用的是本机的地址并且端口号为3306,则可以写成这个格式:jdbc:mysql:///数据库名称.例如:jdbc:mysql:///db3

4) 定义sql语句

这里分两种情况,一种是对表中的数据进行增删改的操作,另一 种是对表中的数据进行查询操作,两种操作的不同决定下面对象 的不同。

5) 获取执行sql的对象

格式:

Statement sta=con.createStatement();

6) 执行sql并获取返回结果

格式:

 Int i=sta.executeUpdate(sql); //对数据库中的数据进行增删改的操作时使用该语句

或者  Resuleset res=sta.executeQuery(sql);Resuleset res=sta.executeQuery(sql); //对数据库中的数据进行查询时使用该语句

i指的是sql语句的执行所影响的数据库中的行数

7) 释放资源

定义的Connection、Statement、Resultset对象都需要释放

格式: con.close()、sta.close() 

下图为运行的一个例子

该例子是对数据库text中的表user进行插入数据操作

数据库初始数据为三条,现在我们要用JDBC向该数据库中插入一条数据“4  王六   147”

下面是IEDA中的操作

 1 import java.sql.Connection;
 2 
 3 import java.sql.DriverManager;
 4 
 5 import java.sql.SQLException;
 6 
 7 import java.sql.Statement;
 8 
 9  
10 
11 public class text {
12 
13  
14 
15     public static void main(String[] args) {
16 
17         Connection con=null;
18 
19         Statement statement=null;
20 
21         try {
22 
23             //注册驱动
24 
25             Class.forName("com.mysql.jdbc.Driver");
26 
27             try {
28 
29                 //获取连接对象Connection
30 
31                 con = DriverManager.getConnection("jdbc:mysql:///text", "root", "1634178849zrz");
32 
33                 //定义sql语句
34 
35                 String sql="insert into user values(4,'王六','147')";
36 
37                 //获取执行sql的对象Statement
38 
39                 statement = con.createStatement();
40 
41                 //执行sql
42 
43                 int i = statement.executeUpdate(sql);
44 
45  
46 
47                 System.out.println(i);
48 
49             } catch (SQLException throwables) {
50 
51                 throwables.printStackTrace();
52 
53             }
54 
55         } catch (ClassNotFoundException e) {
56 
57             e.printStackTrace();
58 
59         }finally {
60 
61             //释放资源
62 
63             if(statement!=null) {
64 
65                 try {
66 
67                     statement.close();
68 
69                 } catch (SQLException throwables) {
70 
71                     throwables.printStackTrace();
72 
73                 }
74 
75             }
76 
77             if(con!=null){
78 
79                 try {
80 
81                     con.close();
82 
83                 } catch (SQLException throwables) {
84 
85                     throwables.printStackTrace();
86 
87                 }
88 
89             }
90 
91         }
92 
93     }
94 
95 }

 

 

数据库中的结果为下图所示

 

执行代码前不要忘记了一个重要过程:导包

这样代码写完后没发现太过于繁琐了吗?在以后的操作中都要写这样一大部分重复的代码,岂不是很浪费时间,为了解决这个问题,我们可以把重复的代码放在一个方法中,这样在下次调用方法就可以直接执行,是不是省事多了?

注册驱动和获取连接对象这两个代码每次是重复的,所有我们可以把这两个写进一个方法

资源释放的代码也一样,我们可以把资源释放写进一个方法中,这样就简洁了许多

先定义一个释放资源的方法

 

再定义一个方法来包装注册驱动和获取连接对象

首先创建一个配置文件

 

内容为

 

接下来要做的就是从该配置文件中得到对应的url、user、password、driver进入该代码中。而文件的读取只需要读取一次即可,

因此,接下来要用到静态代码块这个知识点

格式为:

静态代码块中的

 

为类加载器,目前了解即可,目的是为了把配置文件中的url、user、password、driver加载到Propertiese集合中,再用集合中的方法获取相对于的值。

这样获取对象的方法就简化为

 

这样直接调用这两个方法来代替原代码中的繁琐步骤即可,若要修改数据,直接去配置文件中修改即可。

简化后的代码为:

 1 import java.sql.Connection;
 2 
 3 import java.sql.DriverManager;
 4 
 5 import java.sql.SQLException;
 6 
 7 import java.sql.Statement;
 8 
 9  
10 
11 public class text {
12 
13  
14 
15     public static void main(String[] args) {
16 
17         Connection con=null;
18 
19         Statement statement=null;
20 
21  
22 
23             //注册驱动
24 
25                 //获取连接对象Connection
26 
27         try {
28 
29             con=JDBCUtils.connection();
30 
31         } catch (SQLException throwables) {
32 
33             throwables.printStackTrace();
34 
35         }
36 
37         //定义sql语句
38 
39                 String sql="insert into user values(4,'王六','147')";
40 
41                 //获取执行sql的对象Statement
42 
43         try {
44 
45             statement = con.createStatement();
46 
47         } catch (SQLException throwables) {
48 
49             throwables.printStackTrace();
50 
51         }
52 
53         //执行sql
54 
55         int i = 0;
56 
57         try {
58 
59             i = statement.executeUpdate(sql);
60 
61         } catch (SQLException throwables) {
62 
63             throwables.printStackTrace();
64 
65         }
66 
67  
68 
69         System.out.println(i);
70 
71  
72 
73  
74 
75             //释放资源
76 
77             JDBCUtils.close(statement,con);
78 
79  
80 
81         }
82 
83     }

 

这样一看就简单了许多,省去了很多繁琐的代码。

 

posted @ 2021-06-05 16:10  梦开始的地方  阅读(86)  评论(0)    收藏  举报