首页 > 数据库 >JDBC操作数据库

JDBC操作数据库

时间:2024-03-24 18:33:26浏览次数:28  
标签:JDBC java import 数据库 System statement sql 操作 conn


package com.demo;

import java.sql.*;

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1、加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2、创建连接(DriverManager驱动管理器,创建连接)
        Connection conn = DriverManager.getConnection("jdbc:mysql:///bjo1", "root", "root");
        //3、sql语句执行 statement用来执行sql的对象
        Statement statement = conn.createStatement();
        //执行更新(增加、删除、修改)返回int 数据代表返回更新的行数(大于0代表有数据被更新)
        int i = statement.executeUpdate("delete  from admin where id = 1");
        //执行查询,返回ResultSet结果集
        ResultSet rs = statement.executeQuery("select  from admin where id = 1");
        //4、返回结果
        //循环结果集rs.next()循环遍历
        while(rs.next()){
            //取值方式
            //getInt(1) 获取数据库中int类型数据,第一列的值
            rs.getInt(1);
            //getInt("id") 获取数据库中int类型数据,列名叫”id“的这一列的值
            rs.getInt("id");

        }
        //5、关闭资源
        rs.close();
        statement.close();
        conn.close();
    }}





使用JDBC实现添加功能。
package com.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class InsertDemo {
    public static void main(String[] args) {
        Connection conn = null;
        Statement statement = null;

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name = sc.next();
        System.out.println("请输入密码:");
        String pw1 = sc.next();

        //1、加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2、创建连接
            /*
            ur1:数据库连接路径
            user:用户名
            password:密码
            jdbc:mysql://服务器地址:端口号/数据库名字
            jdbc:mysql://localhost:3306/news_week1
            jdbc:mysql:///news_week1
            ClassNotFoundException异常:类没找到
            SQLException异常:SQL异常
             */
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/news_week1?characterEncoding=utf-8", "root", "root");
            //3、获取执行SQL语句的对象
            statement = conn.createStatement();
            //4、添加
            String sql = "insert into admin values(null,'"+name+"','"+pw1+"')";
            //执行sql语句
            int i = statement.executeUpdate(sql);
            //执行更新操作,返回int类型参数(返回执行更新的行数)
            if (i > 0){
                //添加成功
                System.out.println("添加成功!");
            }else {
                System.out.println("添加失败");
            }

        } catch (Exception e) {
            throw new RuntimeException(e);
        }finally {
                try {
                    if (statement != null) {
                        statement.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    throw new RuntimeException(e);

                    }
                }
        }
    }

使用JDBC实现修改功能

package com.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改的用户名:");
        String name = sc.next();
        System.out.println("请输入需要修改的密码:");
        String pwd = sc.next();
        //1、加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2、创建连接
            Connection conn = DriverManager.getConnection("jdbc:mysql:///news_week1?characterEncoding=utf-8", "root", "root");
            //3、获取执行SQL语句的对象
            Statement statement = conn.createStatement();
            //4、更新密码
            int i = statement.executeUpdate("update admin set admin_pwd = '"+pwd+"' where admin_name = '"+name+"'");
            //5、判断是否成功
            if (i > 0 ){
                System.out.println("修改成功!");
            }else{
                System.out.println("修改失败!");
            }
            statement.close();
            conn.close();

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

使用JDBC实现删除功能

package com.demo;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class DeleteDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要删除的编号:");
        String id = sc.next();

        Connection conn = null;
        Statement statement = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql:///news_week1", "root", "root");
            statement = conn.createStatement();
            int i = statement.executeUpdate("delete  from admin where admin_id = "+id);
            if (i > 0) {
                System.out.println("删除成功!");
            } else {
                System.out.println("删除失败!");
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            try {
                statement.close();
                conn.close();
            }catch (Exception e){

            }
        }
    }
}

如何封装数据库操作的工具类  BaseDao

package com.demo;

import java.sql.*;

public class BaseDao {
    //定义连接JDBC需要的常量
    public static final String driver = "com.mysql.jdbc.Driver";
    protected static final String url = "jdbc:mysql://localhost:3306/news_week1?characterEncoding=utf-8";
    public static final String user = "root";
    public static final String pwd = "root";
    static Connection conn = null;
    static Statement statement = null;
    static ResultSet rs = null;

    //1、加载驱动
    static {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }//2、创建连接

    public static Connection getConn() {
        try {
            conn = DriverManager.getConnection(url, user, pwd);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return conn;
    }

    public static void close() {
        try {
            if (rs != null) {
                    rs.close();
            }if (statement != null) {
                statement.close();
            }if (conn != null) {
                conn.close();
            }
        }catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }

调用BaseDao的方法实现添加和查询功能

package com.demo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class Test {
    @org.junit.Test
    public void select() {
        //通过工具类加载驱动创建连接(类加载时执行静态代码块)
        Connection conn = BaseDao.getConn();
        //创建可执行sql语句的对象
        try {
            Statement statement = conn.createStatement();
            String sql = "select * from admin";
            ResultSet rs = statement.executeQuery(sql);
            ArrayList<Admin> list = new ArrayList<>();
            //循环遍历结果集并展示while遍历结果  re.next()
            while (rs.next()) {
                Admin admin = new Admin(rs.getInt(1), rs.getString(2), rs.getString(3));
                list.add(admin);
            }

            for (Admin admin : list) {
                System.out.println(admin);
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
    @org.junit.Test
    public  void insert() throws SQLException {
        Connection conn = BaseDao.getConn();
        Statement statement = conn.createStatement();
        String sql = "insert into admin values(null,'小米','2313')";
        int i = statement.executeUpdate(sql);
        if (i > 0 ){
            System.out.println("添加成功!");
        }else{
            System.out.println("添加失败!");
        }
        BaseDao.close();
    }
}

标签:JDBC,java,import,数据库,System,statement,sql,操作,conn
From: https://blog.csdn.net/Anyway_01/article/details/136973316

相关文章

  • 嵌入式数据库--SQLite
    目录1.SQLite数据库简介2.SQLite数据库的安装方式一: 方式二:3.SQLite的命令用法1.创建一个数据库 2.创建一张表3.删除表4.插入数据5.查询数据6.删除表内一条数据 7.修改表中的数据8.增加一列也就是增加一个字段1.SQLite数据库简介sqlite数据库是轻量化......
  • MySQL数据库——单表查询、连接查询、子查询
    头歌MySQL数据库代码、答案,单表查询、连接查询、子查询目录MySQL数据库— 单表查询(一)第一关:基本查询语句第二关:带IN关键字的查询 第三关:带BETWEENAND的范围查询MySQL数据库— 单表查询(二)第一关:带LIKE的字符匹配查询第二关:查询空值与去除重复结果 第三关:......
  • Three.js 中的 OrbitControls 是一个用于控制相机围绕目标旋转以及缩放、平移等操作的
    demo案例Three.js中的OrbitControls是一个用于控制相机围绕目标旋转以及缩放、平移等操作的控制器。下面是它的详细讲解:构造函数:OrbitControls(object:Camera,domElement?:HTMLElement)object:THREE.Camera实例,控制器将围绕此对象进行操作,例如相机。domElement......
  • selenium(6)窗口,弹窗,以及iframe的操作
    1.current_window_handle  :可以获取当前窗口的句柄2.window_handles:可以获取所有窗口的句柄3.switch_to.window(handle): 可以切换到指定的窗口,其中handle是窗口的句柄。4.close() :关闭当前窗口。5.switch_to.alert():切换到浏览器弹出框同时可以使用driver.switch_to.al......
  • sql中如何添加数据常用方法和操作手册
    在SQL中,添加数据完整性通常涉及使用数据库的约束和规则来确保数据的质量和一致性。以下是一些在SQL中实现数据完整性的常用方法和操作手册:1、定义数据类型:在创建表时,为每个列定义合适的数据类型。这可以确保插入的数据符合预期的数据类型。SQLCREATETABLEemployees(......
  • 九、文件操作
    本章专题脉络1、文件和流的介绍文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件,avi文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...C程序中,对于文件中数据的输入/输出操作以“流(st......
  • 一个操作让数组处理速度快了5倍,到底是为什么
     概述:通过对数组进行排序,代码更好地利用了缓存,从而提高了程序的性能。这种现象通常被称为"缓存友好"(cache-friendly)或"空间局部性"(spatiallocality)今天做一个数组数据计算时,发现一个效率问题,给大家分享一下一个数组排序和不排序时同样的逻辑处理速度是不一样的。排序后速度......
  • 数据库中什么时候使用自增id,什么时候不能使用
    在数据库中,自增ID的使用场景主要有以下几个:插入记录时不需要指定ID:使用自增ID可以避免手动指定ID,从而避免了因重复ID导致的错误数据库自动编号,速度快:数据库会按照预设的步长(默认为1)进行编号,这对于检索非常有利占用空间小,易于排序和传递:数字型的自增ID通常只占用4个字节,比字......
  • CS 550操作系统
    CS550操作系统,2024年春季编程项目2(PROJ2)输出:2024年2月25日,SUN截止日期:2024年3月23日,SAT23:59:59这个项目有两个部分:编码和问答。在编码部分,您将实现在xv6中分叉后更改竞赛条件结果的功能,并实现xv6的类似MLFQ的调度器。在问答部分,您需要回答有关xv6的问题过程调度。1基线源代码......
  • 智能停车场管理系统设计与实现|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读100套最新项目最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm,springboot的平台......