JDBC详讲Connection与 jdbc-Statement

这篇具有很好参考价值的文章主要介绍了JDBC详讲Connection与 jdbc-Statement。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 目录

DriverManager:驱动管理对象

功能:

Connection:数据库连接对象

功能:

代码实现:

 jdbc-Statement

 statement作用:

 函数介绍:

代码实现:

 文章来源地址https://www.toymoban.com/news/detail-434171.html


 

 

DriverManager:驱动管理对象

功能:

        (1)注册驱动:告诉程序该使用那种数据库

代码中常使用:Class.forName("com.mysql.cj.jdbc.Driver");

会被加载进内存,在源码中可发现com.mysql.cj.jdbc.Driver类中存在静态代码块

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.mysql.cj.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!");
        }
    }
}

***在MySQL5之后可以不注册驱动,因为在MySQLjar包中有文件替你注册驱动

  (2)获取数据库连接

Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.44.1:3306/mydb1","root","200211");

调用DriverManager中的静态方法getConnection(可以直接用类名调用)返回Connection类型对象

***如果连接的是本机MySQL服务器,则MySQL服务器默认为端口是3306,则IP地址和端口号均可以省略。url可以简写为:"jdbc:mysql:///数据库名“

Connection:数据库连接对象

与特定的数据库的链接(接口)

功能:

        (1)获取执行SQL对象Statement

①普通的执行SQL对象:

                        statement    createStatement()

②预编译SQL的执行SQL对象:(防止SQL注入)

                        prepare preparestatement(SQL)

        (2)管理事务:

在MySQL中:

开启事务:

BEGIN

提交事务:

COMMIT

回滚事务

ROLLBACK

MySQL默认自动提交事务

JDBC事务管理:

Connection接口中定义三个对应方法

开启事务:setAutoCommit(boolean autoCommit):为TRUE为自动提交事务,FALSE为手动提交事务,且开启事务

提交事务:commit()

回滚事务:rollback()

 

代码实现:

`` package jdbc;
`` 
`` import java.sql.*;
`` 
`` public class jdbcconnection {
``     public static void main(String[] args) throws SQLException {
`` String url="jdbc:mysql:///School?useSSL=false";
`` String username="root";
`` String password="123112";
``         Connection connection1 = DriverManager.getConnection(url, username, password);
``        String sql="update student set sdept='cs' where sno='08003'";
``        String sql1="update student set sdept='cs' where sno='08002'";
``         Statement statement = connection1.createStatement();
``         try {
``             connection1.setAutoCommit(false);//开启事务
``             int count= statement.executeUpdate(sql);
``            // int i1=3/0;
``             int i = statement.executeUpdate(sql1);
``             System.out.println(count);
``             System.out.println(i);
``             //提交事务   ---到底了说明结束了
``             connection1.commit();
``         } catch (Exception e) {
``                 //回滚事务
``             connection1.rollback();
``             e.printStackTrace();
``         } finally {
``             statement.close();
``             connection1.close();
``         }
`` 
``     }
`` }

 

Statement:执行SQL的对象

Resultset:结果集对象

PreparedStatement:执行SQL对象

          

 jdbc-Statement

 statement作用:

    执行SQL语句
            int executeUpdate(sql)
    执行DML,DDL语句
返回值(1)DML(对表中数据进行增删改)语句影响行数
        (2)**DDL**(对表操作语句)语句执行后**,执行成功也可能返回0**(不能用是否结果为0来判断是否成功)(不报异常即可)
ResultSet executeQuery(sql)
    执行DQL语句
返回值:ResultSet**结果集对象**
           ResultSet:

 函数介绍:

 next()函数
用到函数:bool类型    next()(光标默认是指向数据的上一行)
(1)将**光标**从当前位置向前移动一行
(2)判断当前行是否为有效行
返回值:TRUE   有效行
            FALSE   当前行无数据
 getxxx()函数
    getxx(参数)--函数--获取数据(打印数据)
 xxxgetxx(参数)xxx是类型   如  int  String
参数:int   列的编号(编号从1开始)
        String  列名称(可以写编号)
如  String getString(参数)

代码实现:

`` package jdbc;
`` import org.junit.Test;
`` 
`` import java.sql.Connection;
`` import java.sql.DriverManager;
`` import java.sql.SQLException;
`` import java.sql.Statement;
`` /*执行dml语句*/
`` public class jdbcstatement {
``     @Test
`` public void testDML() throws Exception {
``         String url="jdbc:mysql:///School?useSSL=false";
``         String username="root";
``         String password="12312";
``         Connection connection1 = DriverManager.getConnection(url, username, password);
`` 
``         String sql="update student set sdept='cs' where sno='08003'";
``         String sql1="update student set sdept='cs' where sno='08002'";
``         Statement statement = connection1.createStatement();
``         try {
``             connection1.setAutoCommit(false);//开启事务
``             int count= statement.executeUpdate(sql);
`` if(count>0)
`` {
``     System.out.println("修改成功");
`` }
`` else
`` {
``     System.out.println("修改失败");
`` }
``             // int i1=3/0;
``             int i = statement.executeUpdate(sql1);
``             System.out.println(count);
``             System.out.println(i);
``             //提交事务   ---到底了说明结束了
``             connection1.commit();
``         } catch (Exception e) {
``             //回滚事务
``             connection1.rollback();
``             e.printStackTrace();
``         } finally {
``             statement.close();
``             connection1.close();
``         }
`` 
``     }
`` 
`` }
`` 
`` 


 

 

 

到了这里,关于JDBC详讲Connection与 jdbc-Statement的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter+MySQL链接+JDBC Connection配置元件+使用

    参考大大的博客学习:怎么用JMeter操作MySQL数据库?看完秒懂!_jmeter mysql_程序员馨馨的博客-CSDN博客 注:里面所有没打码的都是假数据,麻烦大家自行修改正确的信息。 一、背景 需要取数据库中的值,作为参数进行增删改查操作,所以要Jmeter跟Mysql连接起来。 二、 加载JD

    2024年02月15日
    浏览(38)
  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: com.mysql.jdbc.Driver

    记录idea报错, 1.引用外部库 mysql-connector-java-8.0.26 dependency       groupIdmysql/groupId       artifactIdmysql-connector-java/artifactId       version8.0.26/version /dependency   2. 引入最新版的c3p0 dependency     groupIdcom.mchange/groupId     artifactIdc3p0/artifactId     version0.9.5.5/version /dependency 3.连接的驱

    2024年02月02日
    浏览(49)
  • create connection SQLException, url: jdbc:mysql//localhost:3306

    出现下图问题: 首先考虑properties中的格式是否正确 其中,localhost:后填入这里的端口号+:/+数据库名 如图,是mysql的workbench界面,填入xxxx后为 localhost:3306/mydb username如图中所示,为root password为你进入数据库时输入的password 不需要加引号 请确保你输入的标点符号一个不落!

    2024年02月12日
    浏览(35)
  • Failed to obtain JDBC Connection;nested exception is dm.jdbc.driver.DMException:初始化SSL环境失败

    一个基于若依单体架构的多模块 Maven 项目的国产化迁移适配,由于是客户的代码,我们不用关心具体的功能实现,直接来做迁移即可。实施时,按照我们总结的整改建议调整源码,具体迁移适配过程可参考本专栏的其他文章。 组件 操作系统:麒麟V10 CPU: HUAWEI, Kunpeng 920 数据

    2023年04月25日
    浏览(57)
  • 单元测试 报 Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions

     单元测试: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the se

    2024年02月06日
    浏览(41)
  • 【Java 进阶篇】JDBC Connection详解:连接到数据库的关键

    在Java中,要与数据库进行交互,需要使用Java数据库连接(JDBC)。JDBC允许您连接到不同类型的数据库,并执行SQL查询、插入、更新和删除操作。在JDBC中,连接数据库是一个重要的步骤,而 Connection 对象是实现这一目标的关键。本篇博客将详细解释 Connection 对象的作用、创建

    2024年02月05日
    浏览(42)
  • 已解决org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection

    已解决org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for异常的正确解决方法,亲测有效!!! org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection 这个异常通常是由于数据库连接超时引起的。 下滑查看解决方法 有几种可能的

    2024年02月04日
    浏览(99)
  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException

    Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The server time zone value \\\'�й���׼ʱ��\\\' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the \\\'serverTimezone\\\' configuration property) to use a more specifc time zone value if you want to utilize time zone s

    2024年02月11日
    浏览(54)
  • Spring报错:create connection SQLException, url: jdbc:mysql://localhost:3306/mm, errorCode 1251, state

    首先将url改成 依然报错  后来发现是mysql-connect的jar包版本不对,我连接的mysql数据库是8.0版本的 然而使用的jar包是5.0版本的。将mysql-connect的jar包版本改为8.0即可

    2024年02月04日
    浏览(36)
  • create connection SQLException, url: jdbc:oracle:thin:@//ip,ip:端口/ORCLerrorCode 17002, state 08006

    记录一下连接oracle时遇到的错误,连接单个oracle可以正常连接比如:jdbc:oracle:thin:@//ip:1521/ORCL,但同时连接多个(jdbc:oracle:thin:@//ip,ip,ip:1521/ORCL)就报 errorCode 17002, state 08006 pom文件使用的 配置文件

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包