zoukankan      html  css  js  c++  java
  • java JDBC系列1 JDBC类的简析与JDBC的基础操作

    java JDBC系列1 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语句的对象

    1. 执行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")
    

    使用步骤:

    1. 游标向下移动一行
    2. 判断是否有数据
    3. 获取数据

    代码演示

    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();
        }
    }
    

    结果

    在这里插入图片描述

    以上就是JDBC的一些基础知识,如有错误还请各位批评指正,喜欢文章的可以点赞收藏,我会经常更新文章,喜欢的也可以关注我呀

    在这里插入图片描述

  • 相关阅读:
    charles修改响应体
    charles重发网络请求&模拟慢速网络&过滤网络请求
    charles修改请求体内容
    monkeyrunner环境搭建以及实例(转)
    django模型中的抽象类(abstract)
    Linux启动/停止/重启Mysql数据库的方法
    ava.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (解决思路)
    unix PS命令和JPS命令的区别
    mysql:表注释和字段注释
    mysql-关于Unix时间戳(unix_timestamp)
  • 原文地址:https://www.cnblogs.com/pjhaymy/p/13384013.html
Copyright © 2011-2022 走看看