JDBC编程的基础操作及理解

本文介绍了JDBC编程的基础操作,包括如何连接数据库、执行查询和更新操作,以及最后如何关闭数据库连接。讲解了Class.forName()的作用,并列举了Statement接口的常用执行SQL方法。此外,还提到了关闭数据库连接前进行判空的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jdbc编程的基础操作及理解

下面我们先上一段代码 好伐?:
这段代码的主要作用是创建数据库连接、执行查询、更新和关闭数据库连接共计四个功能。

package jdbc;
import java.sql.Connection;
public class ManageJDBC {
  private Connection conn=null;//连接对象
  private Statement statement=null;
  public void getconnection(){//建立连接对象 注册驱动
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//反射 导入 SQLJDBC4.JAR
    String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=stu";
    conn = DriverManager.getConnection(url,"sa","123456");
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }
  }
  public ResultSet execute_select(String sql){//执行查询语句的函数  ResultSet获取查询结果
   ResultSet rs=null;
   try {
    Statement statement=conn.createStatement();//Statement表示的是执行SQL语句的JAVA类
    rs=statement.executeQuery(sql);
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }   
   return rs;
  }
  public int execute_update(String sql){//执行更新语句,返回更新语句影响的结果集行数
   int num=0;
   try {
    Statement statement=conn.createStatement();
    num=statement.executeUpdate(sql);
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }
   return num;
  }
  public void close(){//关闭连接
   try {
    if(statement!=null&&conn!=null){
     statement.close();
     conn.close();
    }
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }  
  }
  public static void main(String[] args) {
   ManageJDBC manageJDBC=new ManageJDBC();
   manageJDBC.getconnection();
   ResultSet rs=manageJDBC.execute_select("select * from stu_1");
   try {
    while(rs.next()){
     System.out.println(rs.getString("name"));
    }
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }
   
   manageJDBC.close();
  }
}


首先我们要了解步骤

1.连接数据库

2.操作数据库

3.关闭数据库

一、如何连接数据库呢?首先了解Class.forName()适合什么东东?

Class.forName:返回与给定的字符串名称相关联类或接口的Class对象。

他说的什么意思我也看不懂。

那么如何连接呢??主要就是这段代码:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//反射 导入 SQLJDBC4.JAR
    String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=stu";
    conn = DriverManager.getConnection(url,"sa","123456");

到这里就是建立与数据库的连接了
二、下一步查询数据库


public ResultSet execute_select(String sql){//执行查询语句的函数  ResultSet获取查询结果
   ResultSet rs=null;
   try {
    Statement statement=conn.createStatement();//Statement表示的是执行SQL语句的JAVA类
    rs=statement.executeQuery(sql);
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }   
   return rs;
  }

我们首先还是了解相关的一下东西:

ResultSet接口:用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。再ResultSet接口内部有一个指向表格数据行的游标。
Statement接口:用于执行静态的sq语句,并返回一个结果对象。Statement接口对象可以通过Connection实例中的createStatement()(就是这个方法可以创建对象)方法获得。
Statement下属的executeQuery(sql)方法:用于执行select语句,该方法返回一个表示查询结果的ResultSet对象。

即---------对照代码
1.用conn.createStatement创建Statement对象
2.执行sql语句
3.返回执行结果rs


下面我们看看更新功能是不是相同的套路
public int execute_update(String sql){//执行更新语句,返回更新语句影响的结果集行数
   int num=0;
   try {
    Statement statement=conn.createStatement();
    num=statement.executeUpdate(sql);
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }
   return num;
  }

套路相同,都是先创建对象,执行语句,返回结果。

不过还是有点不一样,返回值不一样,这个就是所使用的方法的问题了,这里我们罗列一下:

Statement接口的3个常用的执行sql语句的方法

方法名称功能描述
boolean execuate(String sql)执行sql的各种语句,该方法返回一个boolean类型的值,如果值为true,表示执行的sql语句有查询结果,可通过Statement的getResultSet()方法获得查询结果
int executeUpdate(String sql)用于执行sql中的insert、update、delete语句。该方法返回一个int类型的值,表示数据库中受该sql语句影响的记录条数
ResultSet executeQuery用于执行sql中的select语句,该方法返回一个表示查询结果的ResultSet对象

欧啦~~~~~总的来说,增、删、更新代码差不多

三、关闭数据库

public void close(){//关闭连接
   try {
    if(statement!=null&&conn!=null){
     statement.close();
     conn.close();
    }
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }  
  }

1.关闭statement

2.关闭conn

3.关闭manageJDBC

还有个小问题,关闭前为什么要判空?

答:

若程序在执行完第一步(注册驱动)后发生异常,
测试conn和stmt对象还没有被创建,
程序也会进入finaly并调用对象stmt conn的close()方法
此时会报错 空指针异常 ,
为了避免此时的空指针异常,
所以要先判断不为空,再进行关闭

详情参见这位仁兄的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值