我是靠谱客的博主 老实流沙,最近开发中收集的这篇文章主要介绍JDBC使用步骤JDBC使用步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • JDBC使用步骤
    • 1. 加载驱动
    • 2. 数据库url配置
    • 3. JDBC执行SQL语句
    • 4. ResultSet
    • 完整代码实例

JDBC使用步骤

1. 加载驱动

  • 第一种方法Class.forName(); 将驱动程序的类文件动态加载到内存中,并将其自动注册
Class.forName("com.nysql.cj.jdbc.Driver")

实际应用会有ClassNotFoundException,所以还应该用try-catch

  • 第二种方法, 使用静态方法DriverManager.registerDriver():
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);

实际应用会有ClassNotFoundException,所以还应该用try-catch

不同数据库的驱动名称:

数据库JDBC名称网址url格式
MYSQL8com.mysql.cj.jdbc.Driverjdbc:mysql://hostname:3306/databaseName?serverTimezone=UTC
MySQLcom.mysql.jdbc.Driverjdbc:mysql://hostname:3306/databaseName
DB2COM.ibm.db2.jdbc.net.DB2Driverjdbc:db2:hostname:port Number / databaseName
ORACLEoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@hostname:port Number:databaseName
SYBASEcom.sybase.jdbc.SybDriverjdbc:sybase:Tds:hostname:port Number / databaseName

2. 数据库url配置

DriverManager.getConnection()方法建立与数据库的连接
getConnection()有三个重载方法:

  • getConnection(String url)

  • getConnection(String url, Properties prop)
    用法:

  • getConnection(String url, String user, String password)

    创建数据连接对象

    String URL = "jdbc:mysql://hostname:3306/databaseName?serverTimezone=UTC";
    String userName = "name";
    String passWord = "password";
    Connection connection = DriverManager.getConnection(URL, userName, passWord);
    

3. JDBC执行SQL语句

  • 一旦获取了与数据库的connection,便可以与数据库进行交互。JDBC中,Statement 和 PreparedStatement接口定义了发送SQL语句命令并从数据库接收数据的方法和属性

  • Statement:在使用Statement执行sql语句前,使用connection.createStatement()创建一个对象

    Statement statement = connection.createStatement()
        
    //创建方法,记得关闭Statement对象
    Statement stmt = null;
    try {
       stmt = connction.createStatement( );
       . . .
    }
    catch (SQLException e) {
       . . .
    }
    finally {
       stmt.close();
    }
    

    Statement对象常用的三个方法:

    boolean execute(String SQL);	//如果可以检索到ResultSet对象,则返回一个布尔值true;
    int executeUpdate(String SQL);	//返回受SQL语句执行影响的行数
    ResultSet executeQuery(String SQL);	//返回一个ResultSet对象
    
  • PreparedStatement与sql注入

    1. 什么是sql注入?
    2. 为什么使用PreapredStatement可以防止使用Statement时出现的sql注入问题?

4. ResultSet

  • ResultSetS是通过Statement对象执行executeQuery()方法产生的对象,代表所查询到的结果集
  • ResultSet()对象有很多方法,可以通过这些方法获取信息
    • next(); 判断是否还有下一条结果,类似与迭代器的next()方法
    • getXXX(String columnLabel); 如getInt(), getString(), getDate()等

完整代码实例

import java.sql.*;

public class Demo2 {

    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        //加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver"); // 可能随着mysql版本变化而变动
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(1);
        }

        try {
            // 获得链接  DriverManager.getConnecton(),该函数有多个重载;
            String url= "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
            String userName = "root";   //数据库用户名
            String passWord = "8888";   //数据库密码
            connection = DriverManager.getConnection(url, userName, passWord);

            // 定义sql,创建状态通道 Statement: connection.createStatement(); ResultSet:statement.executeQuery("sql语句");
            statement = connection.createStatement();
            //当对表执行增删改时,使用executeupdate(), 返回一个整数,代表数据库表中受影响的行数
            int result = statement.executeUpdate("insert into student(stuName, sex, gradeID) values ('周扒皮','男', 4)");
            if (result > 0) {
                System.out.println("修改成功!!!");
            } else {
                System.out.println("修改失败!!!");
            }
			// 修改表
            int result2 = statement.executeUpdate("update student set passwd='123456'");
            System.out.println("result2: " + result2);
			//删除部分信息
            int result3 = statement.executeUpdate("delete from student where stuName='哈皮'");
            System.out.println("result3: " + result2);
            
            // 取出结果和信息  getXXXX(表的列名)
            while (resultSet.next()){
                System.out.println(resultSet.getString("stuName") + " " +
                        resultSet.getDate("birthday") + " " +
                        resultSet.getInt("gradeID"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭资源, 注意顺序
                if (resultSet != null) {
                    resultSet.close();
                }
                if (statement != null){
                    statement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

最后

以上就是老实流沙为你收集整理的JDBC使用步骤JDBC使用步骤的全部内容,希望文章能够帮你解决JDBC使用步骤JDBC使用步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部