java JDBC系列教程之JDBC类的简析与JDBC的基础操作

 更新时间:2020年07月27日 10:42:50   作者:一只胡说八道的猴子  
这篇文章主要介绍了java JDBC系列教程之JDBC类的简析与JDBC的基础操作,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

什么是JDBC?

概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使用这套接口,真正执行的是jar驱动包中的实习类

使用一张图让大家更为直观的理解:
coder就是写这套接口的程序员

JDBC的使用步骤

1.导入驱动jar包
2.注册驱动
3.获取数据库连接对象
4.定义sql执行语句
5.获取sql语句执行对象
6.执行sql语句返回结果
7.处理结果
8.释放结果

代码实现

package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    //注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //获取数据库连接对象
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");
    //定义sql语句
    String sql="update count set money=10000";
    //定义statement执行语句
    Statement statement = connection.createStatement();
    //执行sql语句
    int i = statement.executeUpdate(sql);
    System.out.println("共"+i+"行受到影响");
    //关闭资源
    statement.close();
    connection.close();
  }
}

类详解

DriverManager:驱动管理对象

功能:
1.注册驱动,告诉程序应该使用哪个驱动的java包
static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager 。

写代码使用:

Class.forName("com.mysql.jdbc.Driver");

查看jar包下的源码得:

package com.mysql.jdbc;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
  public Driver() throws SQLException {
  }
  static {
    try {
    //注册驱动
      DriverManager.registerDriver(new Driver());
    } catch (SQLException var1) {
      throw new RuntimeException("Can't register driver!");
    }
  }
}

我们可以发现在com.mysql.jdbc.Driver类中存在静态代码块,内部调用registerDriver(new Driver)注册驱动
mysql5之后可以省略注册驱动的步骤

获取数据库连接

方法:static connection getConnection(String sql,String password)
参数:
* url:指定连接的路径
* 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
* 例子:jdbc:mysql://localhost:3306/db3
* 细节:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写 为:jdbc:mysql:///数据库名称
* user:用户名
* password:密码

**

Connection 数据库连接对象**

1.功能
1.1 获取sql语句的执行对象
*Statement createStatement()
* PreparedStatement prepareStatement(String sql)

1.2 管理事务
开启事务:setAutoCommit(boolean autocommit),调用改方法,参数为false时开启事务
提交事务:commit();
回滚事务:rollback()

1.3 statement:执行sql语句的对象

执行sql
1. boolean execute(String sql) :可以执行任意的sql 了解
2. int executeUpdate(String sql) :执行DML(insert、update、delete)语句、 DDL(create,alter、drop)语句
* 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。

**1.4ResultSet:结果集对象,封装查询结果**
 boolean next():游标向下移动一行,判断当前行是不是最后一行,如果是则返回false,如果不是则返回true
 getXxx(参数):获取数据
* Xxx:代表数据类型  如: int getInt() ,	String getString()
			* 参数:
				1. int:代表列的编号,从1开始  如: getString(1)
				2. String:代表列名称。 如: getDouble("balance")

使用步骤:

  • 游标向下移动一行
  • 判断是否有数据
  • 获取数据

代码演示

package JDBC;
import java.sql.*;
public class Main {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    //注册驱动
    Class.forName("com.mysql.jdbc.Driver");
    //获取数据库连接对象
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");
    //定义sql语句
    String sql="SELECT *FROM COUNT ";
    //定义statement执行语句
    Statement statement = connection.createStatement();
    //执行sql语句
    ResultSet resultSet = statement.executeQuery(sql);
    //循环输出
    while(resultSet.next()){
      int anInt = resultSet.getInt(1);
      String string = resultSet.getString(2);
      int anInt2 = resultSet.getInt(3);
      System.out.println("ID:"+anInt);
      System.out.println("name:"+string);
      System.out.println("money:"+anInt2);
    }
    //关闭资源
    statement.close();
    connection.close();
  }
}

结果

到此这篇关于java JDBC系列教程之JDBC类的简析与JDBC的基础操作的文章就介绍到这了,更多相关java JDBC类与操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java基于logback MessageConverter实现日志脱敏方案分析

    Java基于logback MessageConverter实现日志脱敏方案分析

    本文介绍了一种日志脱敏方案,即基于logbackMessageConverter和正则匹配的方法,该方法的优点是侵入性低,工作量少,只需修改xml配置文件,适用于老项目,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Java 重入锁和读写锁的具体使用

    Java 重入锁和读写锁的具体使用

    这篇文章主要介绍了Java 重入锁和读写锁的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 解析Java的Spring框架的BeanPostProcessor发布处理器

    解析Java的Spring框架的BeanPostProcessor发布处理器

    这篇文章主要介绍了Java的Spring框架的BeanPostProcessor发布处理器,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • Mybatis查询记录条数的实例代码

    Mybatis查询记录条数的实例代码

    这篇文章主要介绍了Mybatis查询记录条数的实例代码,需要的朋友可以参考下
    2017-08-08
  • idea运行tomcat报错找不到catalina.bat,系统找不到指定的文件问题

    idea运行tomcat报错找不到catalina.bat,系统找不到指定的文件问题

    这篇文章主要介绍了idea运行tomcat报错找不到catalina.bat,系统找不到指定的文件问题,具有很好的参考价值,希望对大家有所帮助,
    2023-11-11
  • 基于java URL和URLConnection(详解)

    基于java URL和URLConnection(详解)

    下面小编就为大家分享一篇基于java URL和URLConnection(详解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • SpringBoot中使用拦截器的配置详解

    SpringBoot中使用拦截器的配置详解

    这篇文章主要介绍了SpringBoot中使用拦截器的配置详解,拦截器是 AOP 的一种实现,专门拦截对动态资源的后台请求,即拦截对控制层的请 求,使用场景比较多的是判断用户是否有权限请求后台,需要的朋友可以参考下
    2024-01-01
  • Java生成UUID的常用方式示例代码

    Java生成UUID的常用方式示例代码

    UUID保证对在同一时空中的所有机器都是唯一的,通常平台会提供生成的API,按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字,下面这篇文章主要给大家介绍了关于Java生成UUID的常用方式,需要的朋友可以参考下
    2023-05-05
  • Java超详细讲解类的继承

    Java超详细讲解类的继承

    继承就是可以直接使用前辈的属性和方法。自然界如果没有继承,那一切都是处于混沌状态。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作
    2022-04-04
  • 解决IDEA报错war exploded is not valid问题

    解决IDEA报错war exploded is not valid问题

    在使用IntelliJ IDEA时遇到'[projectname]warexploded'无效的问题,可以通过清除项目列表、重新导入项目和配置新的Tomcat来解决,确保在Tomcat配置中,将ApplicationContext修改为仅包含一个'/',这一方法或许能帮助遇到相似问题的开发者
    2024-09-09

最新评论