Java简单案例:JDBC使用

环境说明

  • mysql 5.7版本
  • mysql中创建sx的数据库,在sx数据库中有一张tb_user的表
  • tb_user的表中有idusernamepassword 三个字段
  • 使用Java简单实现对数据库的增删改查
    在这里插入图片描述

SQL语句

语法:

 INSERT INTO [TABLE_NAME] (column1, column2, column3,...columnN) 
VALUES (value1, value2, value3,...valueN);

例子:

INSERT INTO tb_user VALUE (2,'test','123456')

语法:

 DELETE FROM [table_name]
WHERE [condition];

例子:

DELETE FROM tb_user WHERE id=2;

语法:

 UPDATE [table_name]
SET column1 = value1, column2 = value2...., columnN = valueN

例子:

 UPDATE tb_user SET password='123456' WHERE id=2

语法:

SELECT column1, column2, columnN FROM table_name;

例子:

SELECT * FROM tb_user

JDBC连接数据库的流程

  1. 导入对应数据库的驱动类
    这里是导入对应的数据库的驱动jar包。使用的数据库是MySQL,所以需要去下载MySQL支持JDBC的驱动程序;
    在这里插入图片描述
  2. 加载驱动
    在Java中通过Class.forName("指定数据库的驱动程序")加载驱动。
Class.forName("com.mysql.jdbc.Driver");
  1. 创建连接
    通过DriverManager类的getConnectin方法传入指定的欲连接数据库路径,数据库用户名和数据库密码来获得Connection对象。一般格式为Connection connection = DriverManager.geiConnection(“连接数据库的URL", "数据库用户名", "数据库密码”);
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/sx","root","");
  1. 获得statement对象
    这边可以有两种statement对象,分别是StatementPreparedStatement

区别是:

执行静态SQL语句。通常通过Statement实例实现。 后面SQL语句在executeUpdate()方法中写入。

Statement statement= connection.createStatement() ;   

执行动态SQL语句。通常通过PreparedStatement实例实现。prepareStatement方法中预先存入SQL语句。但是执行SQL语句还是executeUpdate方法

PreparedStatement statement=connection.prepareStatement(sql);
  1. 执行SQL 语句 获得数据集
statement.executeUpdate();
  1. 关闭数据库连接
resultSet.close();
statement.close();
connection.close();

JDBC简单案例

import java.sql.*;

public class Find {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        /*加载驱动*/
        Class.forName("com.mysql.jdbc.Driver");

        /*创建连接*/
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/sx","root","");
        System.out.println("创建连接成功");

        /*写sql语句*/
        String sql="SELECT * FROM tb_user";

        /*获得statement对象*/
        PreparedStatement statement=connection.prepareStatement(sql);

        /*执行sql 得到结果集*/
        ResultSet resultSet=statement.executeQuery();

        /*处理结果集*/
        while (resultSet.next()){
            System.out.println(resultSet.getInt(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
        }

        /*关闭资源*/
        resultSet.close();
        statement.close();
        connection.close();

    }
}

JDBC进阶案例

案例结构图
在这里插入图片描述
因为我们增删改查都要用到加载驱动,连接数据库,关闭资源
所以我们就把加载驱动,连接数据库,关闭资源这三个模块集成到一起

工具类

import java.sql.*;

public class DBUtil {
    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        /*加载驱动*/
        Class.forName("com.mysql.jdbc.Driver");

        /*创建连接*/
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/sx","root","");
        System.out.println("创建连接成功");
        return connection;
    }

    public static void closeAll(ResultSet resultSet, Statement statement, Connection connection) throws SQLException {

        if (resultSet!=null){
            resultSet.close();
        }
        if (statement!=null){
            statement.close();
        }
        if (connection!=null){
            connection.close();
        }
        System.out.println("所有连接关闭成功");
    }
}

import DBUtil.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Add {
    public static void main(String[] args){

        Connection connection= null;
        PreparedStatement statement= null;

        try {
            connection = DBUtil.getConnection();
            String sql="INSERT INTO tb_user VALUE (2,'test','123456')";
            statement = connection.prepareStatement(sql);
            statement.executeUpdate();
            DBUtil.closeAll(null,statement,connection);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

import DBUtil.DBUtil;

import java.sql.*;

public class Delete {
    public static void main(String[] args){

        Connection connection= null;
        PreparedStatement statement= null;

        try {
            connection = DBUtil.getConnection();
            String sql="DELETE FROM tb_user WHERE id=2;";
            statement = connection.prepareStatement(sql);
            statement.executeUpdate();
            DBUtil.closeAll(null,statement,connection);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

import DBUtil.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Update {
    public static void main(String[] args){
        Connection connection= null;
        PreparedStatement statement= null;

        try {
            connection = DBUtil.getConnection();
            String sql="UPDATE tb_user SET password='123456' WHERE id=2";
            statement = connection.prepareStatement(sql);
            statement.executeUpdate();
            DBUtil.closeAll(null,statement,connection);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }
}

import DBUtil.DBUtil;

import java.sql.*;

public class Find {
    public static void main(String[] args) {

        Connection connection= null;
        PreparedStatement statement= null;
        ResultSet resultSet=null;

        try {
            connection = DBUtil.getConnection();
            String sql="SELECT * FROM tb_user";
            statement = connection.prepareStatement(sql);
            resultSet=statement.executeQuery();
            while (resultSet.next()){
                System.out.println(resultSet.getInt(1));
                System.out.println(resultSet.getString(2));
                System.out.println(resultSet.getString(3));
            }
            DBUtil.closeAll(resultSet,statement,connection);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零到1%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值