java关于JDBC

关于JDBC

什么是 JDBC

JDBC是一种用于执行 sql 语句的 java api。可以为多种关系型数据库提供同一访问,它由一组用 java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

关于数据库驱动

我们安装好数据库后,我们的应用程序也不能直接连接使用数据库,必须要使用相应的数据库驱动程序。其实就是数据库厂商的 JDBC 接口实现。在java中,这个驱动是 mysql-connector-java-8.0.16.jar,或者其他驱动版本。

常用接口

Driver 接口

Driver接口由数据库厂商提供,在java中,只要使用Driver接口就可以。在编程中要连接数据库,必须装在特定厂商的数据库驱动程序。

// mysql 8.0 之前的版本
Class.forName("com.mysql.jdbc.Driver");
// mysql 8.0 之后的版本
Class.forName("com.mysql.cj.jdbc.Driver");

Connection接口

数据库连接接口,用来连接数据库

Connection conn = DriverManager.getConnection(URL,USER,PASWORD);

Statement接口

Statement接口,通过Connection创建,用于执行sql语句,返回的数据由ResultSet接口接收

Statemnet stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from user");

statement 实例分为3中类型:

  1. 执行静态语句,通常使用 Statement实例
  2. 执行动态语句,通常使用 PreparedStatement实例
  3. 执行数据库存储过程,通常使用 CallableStatement实例

statement接口提供了三种执行 sql语句的方法:

  1. exectueQuery:用于执行 SELECT 语句
  2. exectueUpdate:用于执行 INSERT、DELETE、UPDATE 语句
  3. exectue:可以用来执行所有语句,但是因为执行起来比较麻烦,通常我们使用上边的两种。

ResultSet接口

用于接收 sql语句的返回结果。

使用rs.next()判断是否在下一行还有结果。通过移动指针的方式。

while(rs.next()){
    System.out.print(rs.getString("user"));
}

实例

public static void main(String[] args){
    // 加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    // 创建 mysql 数据库连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/School","root","root");
    // 准备执行的sql
    String sql = "SELECT * FROM student where name = ?";
    //因为要执行动态查询语句,所以使用 PreparedStatement
    PreparedStatement ps = conn.preparedStatement(sql);
    // ?对应的参数的设置
    ps.setString(1,"zs");	//第一个参数表示?是第几个,第二个参数是这个?的值。
    //执行sql并接收返回值
    ResultSet rs = ps.executeQuery();
	// 判断获取到的内容是否为空,并移动指针到第一行
    while(rs.next()){
		// 获取这一行内的内容
      	System.out.print(rs.getString("name"));
        System.out.print(rs.getInt("age"));
    }
    // 注意要关闭操作接口
    rs.close();
    ps.close();
    conn.close();
    //顺序不能错,要依次关闭。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值