华企号 元宇宙 JDBC的使用

JDBC的使用

导入对应数据库的驱动类:

  • 1.在对应的数据库厂商网站获取对应的jar包
  • 2.将对应的jar包添加到引用。
    • 在eclipse中可以将jar包导入一个文件夹后,右键Build Path -> add to path就可以将jar包添加到当前项目引用的库里面。image

 

加载驱动:

  • image

 

PS:

  • 在上面的forName中,执行了注册驱动,注册驱动这个代码被定义在驱动类的静态代码块中。
  • 对于一些新手,使用的方法可能是image,对于这种情况,那么他可以使用driver或DriverManager.getConnection来获取数据库连接对象;而对于另外一些新手,他们可能会使用image,然后再通过DriverManager.getConnection来获取数据库连接对象。但本质上,这是一种浪费,因为静态代码块中已经静态生成了一个驱动对象并使用DriverManager.registerDriver注册了,所以上面两种都是浪费。使用forName后,可以使用DriverManager.getConnection来获取数据库连接对象。

 

获取连接:

  • 在考虑使用forName节省资源后,下面介绍的获取连接的方法使用的是DriverManager.getConnectionimage
  • getConnection需要参数
    • url:定义了连接的数据库的路径
      • jdbc协议:数据库子协议:主机[:端口][/连接的数据库]  【[]代表可选的】
      • 例如:jdbc:mysql://localhost:3306/testimage
    • 配置流Properties:定义了连接数据库的方式,一般至少包含user和password
    • 不使用配置流时,传入user和password
    • 如果使用匿名登录,则只传入url

image

 

 

执行SQL语句:

JDBC执行SQL语句的方式主要有三种:

1.使用Statement执行sql语句

2.使用PreparedStatement执行sql语句

3.使用CallableStatement执行sql语句

上面的Statement、PerPareStatement、Callalestatement都可以使用连接对象来获取。

image

 

 

  • 使用Statement执行语句
    • Statement对象的获取可以使用createStatement()来获取
    • 获取Statement对象后,对于查询类的sql语句使用:executeQuery(sql),sql是一个字符串sql语句,返回结果是一个结果集【如果获取结果看下面的结果部分】
    • 对于更新类(插入、修改、删除、更新)的语句使用:executeUpdate(sql),sql是一个字符串sql语句,返回结果是一个整数(受影响的行数)

image

 

 

  • 使用PreparedStatement执行语句
    • PreparedStatement对象的获取可以使用prepareStatement(sql)来获取,注意的是需要传入一条sql语句
    • PreparedStatement的功能类似Statement,但不同的是PreparedStatement可以使用占位符,它是由占位符标识需要输入数据的位置,然后再逐一填入数据。当然,PreparedStatement也可以执行没有占位符的sql语句
      • 使用占位符后,使用setString或setInt等方法来设置每一位的数据。【有各种对应数据类型的设置方法,比如还有setFloat
        • setXXX方法中,第一个参数是位置,第二个是数据

 

    • 获取Statement对象后,对于查询类的sql语句使用:executeQuery(),返回结果是一个结果集【如果获取结果看下面的结果部分】
    • 对于更新类(插入、修改、删除、更新)的语句使用:executeUpdate(),返回结果是一个整数(受影响的行数)
    • 补充:
      • 对于有sql缓存池的数据库,PreparedStatement的效率要高于Statement【有兴趣的自查】

image

  • 使用CallableStatement执行语句
    • CallableStatement主要用来调用存储过程
    • 对于输出参数,需要使用registerOutParameter注册,第一个参数是位置,第二个参数是参数类型(使用Types.xxx)
    • 注册之后,想要获取输出参数,可以使用CallableStatement对象自身的getXXX方法来获取

定义的存储过程示例:

image

使用:

image

 

 

 

获取返回:

  • 返回结果是一个结果集,它有一个光标指向结果的每一行,最开始它不指向结果,第一次执行next()后,它指向第一行结果,继续执行next(),他会继续指向下一行。next的返回结果是布尔值,它可以用来判断是否有下一行。
    • 对于每一行结果,可以使用getXXX方法(参照下面)来获取某一列的结果,getXXX方法的参数可以为字段名,也可以为索引号(从1开始)

image

image

 

 

 

 

关闭连接:

  • 后开启的需要先关闭,Statement、Connection、ResultSet都是需要关闭的
  • 注意:关闭之前需要留心检查是否为null

image

 

作者: 华企网通王鹏程序员

我是程序员王鹏,热爱互联网软件开发和设计,专注于大数据、数据分析、数据库、php、java、python、scala、k8s、docker等知识总结。 我的座右铭:"业精于勤荒于嬉,行成于思毁于随"
上一篇
下一篇

发表回复

联系我们

联系我们

028-84868647

在线咨询: QQ交谈

邮箱: tech@68v8.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部