IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> JDBC操作数据库增删改查(基础版) -> 正文阅读

[大数据]JDBC操作数据库增删改查(基础版)

作者:more-toolbox-new

JDBC简介:

????????????????????????JDBC(Java DataBase Connectivity, java数据库连接)是一种用于执行SQL语句的Java API (简而言之 使用JAVA语言 让SQL在MySQL中执行),可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

?

为什么需要JDBC?反向思考没有JDBC会出现什么情况?

?

此时每一个程序员要学习每个数据库官方提供的方法,此时也不太好!

使用接口:定义方法,但是没有实现。 多态,定制规则。

介绍完毕,上代码!!!

实体类

//创建表格实体类,实体类属性必须和表格列名一致(见名知意)写入get set  toString方法
public class Food {
    private  Integer fid;
    private  String fname;
    private  float price;
    private Integer kid;

    public Integer getFid() {
        return fid;
    }

    public void setFid(Integer fid) {
        this.fid = fid;
    }

    public String getFname() {
        return fname;
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public Integer getKid() {
        return kid;
    }

    public void setKid(Integer kid) {
        this.kid = kid;
    }

    @Override
    public String toString() {
        return "Food{" +
                "fid=" + fid +
                ", fname='" + fname + '\'' +
                ", price=" + price +
                ", kid=" + kid +
                '}';
    }
}

?dao层操作


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class FoodDao {
    //提升作用域
    Connection connection =null;
    PreparedStatement preparedStatement =null;
    ResultSet resultSet =null;


    //查询所有
    public List<Food> findAll(){

        ArrayList<Food> list = new ArrayList<>();

        try {
         //加载驱动
         Class.forName("com.mysql.cj.jdbc.Driver");
         //  DriverManager:驱动的管理者,通过它创建连接。-----通过此方法根据url路径找到数据库并验证账户和密码
         connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/111", "root", "root");
         // sql预编译/加载
         String sql="select * from food";
         //执行sql语句
         preparedStatement = connection.prepareStatement(sql);
         resultSet = preparedStatement.executeQuery();
        while (resultSet.next()){
            Food food = new Food();
            food.setFid(resultSet.getInt("fid"));
            food.setFname(resultSet.getString("fname"));
            food.setPrice(resultSet.getInt("price"));
            food.setKid(resultSet.getInt("kid"));
            list.add(food);
        }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
            //  关闭连接   判断连接是否开启  使用完关闭,释放资源
            if (resultSet!=null){
                resultSet.close();
            }
            if (preparedStatement!=null){
                preparedStatement.close();
            }
            if (connection!=null){
                connection.close();
            }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return list;

    }


    //新增操作
    public  int add(Food food){
        try {

            //加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //  DriverManager:驱动的管理者,通过它创建连接。-----通过此方法根据url路径找到数据库并验证账户和密码
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/111", "root", "root");
            // sql预编译/加载
            String sql="insert into food values  (null,?,?,?)";
            preparedStatement = connection.prepareStatement(sql);
            //根据数字和问号占位符对应,根据对象获取值
            preparedStatement.setObject(1,food.getFname());
            preparedStatement.setObject(2,food.getPrice());
            preparedStatement.setObject(3,food.getKid());
            //i 返回执行sql语句后影响的行数
            int i = preparedStatement.executeUpdate();

            return i;
        }catch (Exception e){
        e.printStackTrace();
        }finally {
            try {
                //  关闭连接   判断连接是否开启  使用完关闭,释放资源
                if (resultSet!=null){
                    resultSet.close();
                }
                if (preparedStatement!=null){
                    preparedStatement.close();
                }
                if (connection!=null){
                    connection.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return  0;

    }

    //根据id删除数据
    public  int del(Integer id){
        try {

            //加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //  DriverManager:驱动的管理者,通过它创建连接。-----通过此方法根据url路径找到数据库并验证账户和密码
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/111", "root", "root");
            // sql预编译/加载
            String sql="delete from food where fid=?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setObject(1,id);
            //i 返回执行sql语句后影响的行数
            int i = preparedStatement.executeUpdate();

            return i;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                //  关闭连接   判断连接是否开启  使用完关闭,释放资源
                if (resultSet!=null){
                    resultSet.close();
                }
                if (preparedStatement!=null){
                    preparedStatement.close();
                }
                if (connection!=null){
                    connection.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return  0;
    }

    //修改操作
    public  int update(Food food ){
        try {

            //加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //  DriverManager:驱动的管理者,通过它创建连接。-----通过此方法根据url路径找到数据库并验证账户和密码
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/111", "root", "root");
            // sql预编译/加载
            String sql="update  food set  fname=?,price =?,kid=? where fid =?";
            preparedStatement = connection.prepareStatement(sql);
            //根据数字和问号占位符对应,根据对象获取值
            preparedStatement.setObject(1,food.getFname());
            preparedStatement.setObject(2,food.getPrice());
            preparedStatement.setObject(3,food.getKid());
            preparedStatement.setObject(4,food.getFid());
            //i 返回执行sql语句后影响的行数
            int i = preparedStatement.executeUpdate();

            return i;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                //  关闭连接   判断连接是否开启  使用完关闭,释放资源
                if (resultSet!=null){
                    resultSet.close();
                }
                if (preparedStatement!=null){
                    preparedStatement.close();
                }
                if (connection!=null){
                    connection.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return  0;

    }



}

?测试类测试代码

package com.lj1.Test;

import com.lj1.dao.FoodDao;
import com.lj1.entity.Food;

import java.util.List;

/**
 * @program: JDBCday02
 * @description:
 * @author: 刘健
 * @create: 2021-10-21 13:53
 **/
public class Test1 {
    
    //查询所有 
    public static void main(String[] args) {
        FoodDao foodDao = new FoodDao();
        List<Food> all = foodDao.findAll();
        for (int i = 0; i < all.size(); i++) {
            Food food = all.get(i);

            System.out.println(food.getFid());
            System.out.println(food.getFname());
            System.out.println(food.getPrice());
            System.out.println(food.getKid());

        }

    }

    //新增操作
   /* public static void main(String[] args) {
        FoodDao foodDao = new FoodDao();
        Food food = new Food();
        food.setFname("汉堡包");
        food.setPrice(1.1f);
        food.setKid(1);
        int add = foodDao.add(food);
        System.out.println(add);
    }*/
    
    //根据id删除整行数据
   /* public static void main(String[] args) {
        FoodDao foodDao = new FoodDao();
        int del = foodDao.del(17);
        System.out.println(del);
    }*/

        //根据id修改数据
    /*public static void main(String[] args) {
        FoodDao foodDao = new FoodDao();
        Food food = new Food();
        food.setFid(14);
        food.setFname("牛肉堡");
        food.setPrice(1.2f);
        food.setKid(2);
        int add = foodDao.update(food);
        System.out.println(add);
    }*/





}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:59:55  更:2021-10-24 15:02:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:32:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码