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 }
这样一看就简单了许多,省去了很多繁琐的代码。
浙公网安备 33010602011771号