JDBC操作

JDBC架构:java DataBase Connectivity
用来将java代码和数据库进行链接
为多种关系型数据库DBMS提供统一的访问方式,目的就是用
java来操作数据库。
目的就是为了访问数据库
数据库有很多:Oracle,mysql,sqlserver
操作数据库是通过驱动来操作的。这个驱动程序就是一个jar包
不同数据库,其驱动程序也不一样。
由于各种驱动程序不一样,所以通过jdbc来进行管理这些驱动程序,从而,为多种关系型数据库DBMS提供【统一】的访问方式

结构:
image.png
java代码-》jdbc -》JDBC DriverManager-》操作驱动-》操作数据库
java通过操作jdbc来操作jdbcmanager然后jdbcmanager操作驱动,驱动操作数据库

jdbc怎么操作呢?
通过jdbc提供的各种api来操作

1.JDBC API (API:各种各样的方法,接口,属性,类,称为API或各种各样的操作访问接口,比如说一些增删改查的接口,一些接口的名字,比如说主要的一些类(接口):Connection,Statement(父类),PreparedStatement(子类),ResultSet)

2.JDBC DriverManager:用来管理不同数据库驱动
3. 各种数据库驱动是由相应数据库厂商提供的,用来连接或者直接操作数据库

这3个中,主要讲jdbc api,其他的不用讲,讲讲其中的接口或者类

jdbc api的三个功能:

  1. 与数据库建立连接
  2. 发送SQL语句
  3. 返回处理结果
    jdbc api的三个功能主要是通过以下类或接口实现的:
    DriverManager: 加载管理jdbc驱动
    Connection:连接(通过DriverManager产生)
    Statement(PreparedStatement):增删改查(通过Connection产生)
    CallableStatement:调用数据库中的 存储过程/存储函数(通过Connection产生)
    Result :比如select* from student,然后返回的结果集,就在这里面(由上面的 Statement等产生)

Connection可以产生Statement对象

stmt = connection.createStatement();

Connection 产生操作数据库的对象:

Connection 产生Statement对象,createStatement();
Connection 产生PreparedStatement对象,prepareStatement()
Connection 产生CallableStatement对象,prepareCall();

Statement操作数据库:
增删改:executeUpdate();
查询:executeQuery();

ResultSet:保存结果集
next():光标下移,判断是否有下一条数据,true/false
previous();true/false
getXxx(字段名|位置):获取具体的字段值
PreparedStatement操作数据库:
public interface PreparedStatement extends Statement

PreparedStatement这是一个子类
因此:
增删改:executeUpdate();
查询:executeQuery();
赋值操作:setXxx();

image.png

jdbc访问数据库的具体步骤:###4步

a。导入驱动,加载具体的驱动类
驱动程序是一个jar包,jar包里面好多java类,好多class,要选中具体是哪个类,就是jar包中的哪个类
b。与数据库建立连接
c。发送sql,执行
d。处理结果集(可选,增删改没有结果集的返回,常用于查询)

jdbc只需要建一个传统的java项目即可

数据库驱动介绍:
不同数据库,其驱动也不一样
x代表版本号
驱动jar包 具体的驱动类(记)
Oracle ojdbc-x.jar oracle.jdbc.OracleDriver
Mysql mysql-connector-java-x.jar com.mysql.jdbc.Driver
sqlserver sqljdbc-x.jar com.microsoft.sqlserver.jdbc.SQLServerDriver

不同的连接字符串(百度可以搜到)
jdbc:oracle:thin:@localhost:1521:ORCL
jdbc:mysql://localhost:3306/数据库实例名
jdbc:mircrosoft:sqlserver:localhost:1433;databasename=数据库实例名

连接字符串:ip地址+端口号+数据库名字 ,(不同数据库展现格式不一样)
连接字符串中,不同数据库,连接字符串的格式不一样
用户名,密码,这个要单独放
步骤:导入驱动
image.png
添加到内路径
image.png
不用建包,会自动生成包的
image.png

加载具体驱动类

通过class。forname来加载具体驱动类
具体驱动类:打开ojdbc6.jar-》oracle.jdbc找到OracleDriver.class
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAeTYB8k-1651113494119)(https://upload-images.jianshu.io/upload_images/15655731-905dc5f7aeba345e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

image.png


b,建立连接:
我们需要一个对象,叫connection
java程序要和之前的那个驱动建立连接,中间有个JDBC drivermanager
即,通过drivermanager建立连接
要访问一个数据库,就要知道数据库的地址,同时,这个Oracle数据库中可能有好多个数据库,所以要填写用户名和密码,即指定数据库的名字

public class JDBCdemo01 {
	private final String URL="jdbc:oracle:thin:@localhost:1521:ORCL";
	private final String USERNAME="scott";
	private final String PWD="tiger";
	public void update() throws ClassNotFoundException, SQLException {//增删改
		//1,导入驱动,加载具体驱动类
		Class.forName("oracle.jdbc.OracleDriver");//加载具体驱动类
		//2,与数据库建立连接
		Connection connection = DriverManager.getConnection(URL,USERNAME,PWD);
	}

}

【因为url,不需要改变,所以用大写的表示,】
然后选中ctrl+1,自动补全声明。
sqlplus查看数据库

SQL> set linesize 120;
SQL> select *from student;

     STUNO STUNAME                                          STUAGE GNAME
---------- -------------------------------------------- ---------- ----------------------------------------
         2 ls                                                   22 s2
         3 cc                                                   25 s3
         6 abc                                                  25 s6
         1 zs                                                   23 s1
         8 dch                                                  23 s1
        39 jerry                                                56 sh4
        36 tom                                                  56 s4

已选择7行。

SQL> desc student;
 名称                                                              是否为空? 类型
 ----------------------------------------------------------------- -------- --------------------------------------------
 STUNO                                                             NOT NULL NUMBER
 STUNAME                                                                    VARCHAR2(22)
 STUAGE                                                                     NUMBER
 GNAME                                                                      VARCHAR2(20)

SQL>

做完之后,需要关闭一下


异常不要抛(throw)
建议try catch

关闭一般在finally中,因为无论是否执行,最后都要关闭
关闭释放资源放到finall中

图片.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,通过JDBC可以实现与各种数据库的连接和操作。高斯数据库是一种分布式数据库系统,支持高性能、高可靠性的数据存储和查询。下面是使用JDBC操作高斯数据库的一般步骤: 1. 导入JDBC驱动:首先需要将高斯数据库的JDBC驱动导入到项目中,可以从高斯数据库官方网站下载相应的驱动。 2. 加载驱动:使用`Class.forName()`方法加载驱动类,例如: ```java Class.forName("com.gauss.jdbc.Driver"); ``` 3. 建立连接:使用`DriverManager.getConnection()`方法建立与数据库的连接,需要提供数据库的URL、用户名和密码,例如: ```java String url = "jdbc:gauss://localhost:5432/mydb"; String username = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, username, password); ``` 4. 创建Statement或PreparedStatement对象:通过连接对象创建Statement或PreparedStatement对象,用于执行SQL语句,例如: ```java Statement stmt = conn.createStatement(); ``` 5. 执行SQL语句:使用Statement或PreparedStatement对象执行SQL语句,例如: ```java String sql = "SELECT * FROM mytable"; ResultSet rs = stmt.executeQuery(sql); ``` 6. 处理结果集:通过ResultSet对象获取查询结果,进行相应的处理,例如: ```java while (rs.next()) { // 处理每一行数据 String column1 = rs.getString("column1"); int column2 = rs.getInt("column2"); // ... } ``` 7. 关闭资源:在使用完毕后,需要关闭ResultSet、Statement、Connection等资源,例如: ```java rs.close(); stmt.close(); conn.close(); ``` 这是一个简单的JDBC操作高斯数据库的示例,具体的操作还可以根据实际需求进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值