JDBC实现java数据库连接(附完整例子+超详细注解)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: JDBC实现java数据库连接(附完整例子+超详细注解)

本人刚写博客不久,是个新人,望大家能给予一些鼓励。 您的一个赞或者是评论区的一句话都将是对我最大的激励。

简单一句话先来了解下JDBC

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

说白了就是实现 java和数据库的连接。

附上例子:

先让大家看下我的路径:

看到这么多的类屏幕前的你是不是被吓到了?

其实也不难。

放代码!

(以下代码建议按顺序观看)

Dept

package com.etc.entity;
//部门类
public class Dept {
  private int deptNo;  //部门号
  private String deptName;  //部门名
  private String deptAddress;  //部门地址
  //构造方法
  public Dept() {
    super();
  }
  public Dept(String deptName, String deptAddress) {
    super();
    this.deptName = deptName;
    this.deptAddress = deptAddress;
  }
  public Dept(int deptNo, String deptName, String deptAddress) {
    super();
    this.deptNo = deptNo;
    this.deptName = deptName;
    this.deptAddress = deptAddress;
  }
 //重写toString方法 
  @Override
  public String toString() {
    return "Dept [deptNo=" + deptNo + ", deptName=" + deptName + ", deptAddress=" + deptAddress + "]";
  }
  //get和set访问器
  public int getDeptNo() {
    return deptNo;
  }
  public void setDeptNo(int deptNo) {
    this.deptNo = deptNo;
  }
  public String getDeptName() {
    return deptName;
  }
  public void setDeptName(String deptName) {
    this.deptName = deptName;
  }
  public String getDeptAddress() {
    return deptAddress;
  }
  public void setDeptAddress(String deptAddress) {
    this.deptAddress = deptAddress;
  }
}

TestAdd

package com.etc.option;
//增方法
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
 * 第一个JDBC程序,向数据库中添加一条记录
 * @author GGBOOM
 *
 */
public class TestAdd {
  public static void main(String[] args) throws ClassNotFoundException {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
    //JDBC需要这个JAR包来完成我们对数据库的访问
    //jar包其实就是很多的字节码文件
    //2.连接数据库
    //连接数据库的四个变量
    String driver="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    String url="jdbc:mysql://localhost:3306/myschool";   // 指JDBC连接方式;   jdbc:mysql
                                                         //指你的本机地址;  localhost
                                                         //SQL数据库的端口号;  3306 
                                                         //要连接的数据库;      myschool 
    String userName="root"; //账号
    String userPwd="root";//密码
    String sql="INSERT INTO dept(deptName,deptAddress) VALUES(?,?)";
    Class.forName(driver);//加载驱动
    Connection conn=null;   
    PreparedStatement pstmt=null;
    try {
      conn = DriverManager.getConnection(url, userName, userPwd); //可以使用DriverManager获取连接对象
      pstmt=conn.prepareStatement(sql);//通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
      pstmt.setString(1,"公关部");
      pstmt.setString(2,"金华");
      //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
      int result=pstmt.executeUpdate();
      if(result>0) {
        System.out.println("插入成功!");
      }else {
        System.out.println("插入失败!");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      try {
        if(pstmt!=null) {
          pstmt.close();   //关闭操作节省资源
        }
        if(conn!=null) {
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

TestDel

package com.etc.option;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
 * 第一个JDBC程序,向数据库中添加一条记录
 * @author GGBOOM
 *
 */
public class Testdel {
  public static void main(String[] args) throws ClassNotFoundException {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
    //JDBC需要这个JAR包来完成我们对数据库的访问
    //jar包其实就是很多的字节码文件
    //2.连接数据库
    //连接数据库的四个变量
    String driver="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    String url="jdbc:mysql://localhost:3306/myschool";
    String userName="root";
    String userPwd="root";
    String sql="delete from dept where deptNo=?";
    //3.加载驱动
    Class.forName(driver);
    //可以使用DriverManager获取连接对象
    Connection conn=null;
    PreparedStatement pstmt=null;
    try {
      conn = DriverManager.getConnection(url, userName, userPwd);
      //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
      pstmt=conn.prepareStatement(sql);
      pstmt.setInt(1, 6);
      //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
      int result=pstmt.executeUpdate();
      if(result>0) {
        System.out.println("删除成功!");
      }else {
        System.out.println("删除失败!");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      try {
        if(pstmt!=null) {
          pstmt.close();
        }
        if(conn!=null) {
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

TestUpd

package com.etc.option;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
 * 第一个JDBC程序,向数据库中添加一条记录
 * @author GGBOOM
 *
 */
public class TestUpd {
  public static void main(String[] args) throws ClassNotFoundException {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
    //JDBC需要这个JAR包来完成我们对数据库的访问
    //jar包其实就是很多的字节码文件
    //2.连接数据库
    //连接数据库的四个变量
    String driver="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    String url="jdbc:mysql://localhost:3306/myschool";
    String userName="root";
    String userPwd="root";
    String sql="UPDATE DEPT SET deptAddress=?   WHERE deptno=?";
    //3.加载驱动
    Class.forName(driver);
    //可以使用DriverManager获取连接对象
    Connection conn=null;
    PreparedStatement pstmt=null;
    try {
      conn = DriverManager.getConnection(url, userName, userPwd);
      //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
      pstmt=conn.prepareStatement(sql);
      pstmt.setString(1,"金华");
      pstmt.setInt(2, 5);
      //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
      int result=pstmt.executeUpdate();
      if(result>0) {
        System.out.println("修改成功!");
      }else {
        System.out.println("修改失败!");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      try {
        if(pstmt!=null) {
          pstmt.close();
        }
        if(conn!=null) {
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

TestQuery

package com.etc.option;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * 第一个JDBC程序,向数据库中添加一条记录
 * @author GGBOOM
 *
 */
public class TestQuery {
  public static void main(String[] args) throws ClassNotFoundException {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
    //JDBC需要这个JAR包来完成我们对数据库的访问
    //jar包其实就是很多的字节码文件
    //2.连接数据库
    //连接数据库的四个变量
    String driver="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    String url="jdbc:mysql://localhost:3306/myschool";
    String userName="root";
    String userPwd="root";
    String sql="SELECT * from dept";
    //3.加载驱动
    Class.forName(driver);
    //可以使用DriverManager获取连接对象
    Connection conn=null;
    PreparedStatement pstmt=null;
    ResultSet rs=null;  //结果集合
    try {
      conn = DriverManager.getConnection(url, userName, userPwd);
      //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
      pstmt=conn.prepareStatement(sql);
      rs=pstmt.executeQuery();
      while(rs.next()) {
        //下面两种凡是的区别,一般使用第二种方式,第一种方式如果我现在调换了列的位置,那么我们要去修改下面的代码
        //第二种方式根据列名来获取值,那么我们不管怎么去修改列的位置,都不会影响到我们的取值
        int deptNo=rs.getInt(1);//通过索引取值
        String deptName=rs.getString("deptName");//通过列名
        String deptAddress=rs.getString("deptAddress");
        System.out.println("deptNo:"+deptNo+" deptName: "+deptName+" deptAddress: "+deptAddress);
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      try {
        if(rs!=null) {
          rs.close();
        }
        if(pstmt!=null) {
          pstmt.close();
        }
        if(conn!=null) {
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

BaseDao

package com.etc.dao;
 //将增删改查这4个操作的共有语句整理进来
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
    private static final String DRIVER="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    private static final String URL="jdbc:mysql://localhost:3306/myschool";
    private static final String USERNAME="root";
    private static final String USERPWD="root";
    //获取连接对象
    public static Connection getConnection() {
      try {
        Class.forName(DRIVER);
      } catch (ClassNotFoundException e1) {
        e1.printStackTrace();
      }
      Connection conn=null;
      try {
        conn = DriverManager.getConnection(URL, USERNAME, USERPWD);
      } catch (SQLException e) {
        e.printStackTrace();
      }
      return conn;
    }
                                                                          //代表多个Object对象
    public static PreparedStatement setParam(Connection conn,String sql,Object...param) throws SQLException{
      PreparedStatement pstmt=null;
      pstmt=conn.prepareStatement(sql);
      for(int i=0;i<param.length;i++) {
        pstmt.setObject(i+1, param[i]);
      }
      return pstmt;
    }
    //增删改的通用方法
    public static int exeUpdate(PreparedStatement pstmt) throws SQLException  {
      int result=0;
        //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
      result=pstmt.executeUpdate();
      return result;
    }
    public static void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs) {
      try {
        if(pstmt!=null) {
          pstmt.close();
        }
        if(conn!=null) {
          conn.close();
        }
        if(rs!=null) {
          rs.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
}

DeptDao

package com.etc.dao;
import java.util.List;
import com.etc.entity.Dept;
/**
 * 部门Dao接口
 * @author GGBOOM
 *
 */
public interface DeptDao {
  /**
   * 添加
   * @param dept
   */
  void deptAdd(Dept dept);
  /**
   * 根据部门号删除
   * @param deptNo
   */
  void deptDel(int deptNo);
  /**
   * 根据部门号修改
   * @param dept
   */
  void deptUpdate(Dept dept);
  /**
   * 查询全部部门
   * @return
   */
  List<Dept> deptQuery();
}

DeptDaoImpl

package com.etc.dao.impl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.etc.dao.BaseDao;
import com.etc.dao.DeptDao;
import com.etc.entity.Dept;
public class DeptDaoImpl implements DeptDao {
  @Override
  public void deptAdd(Dept dept) {
        String sql="INSERT INTO dept(deptName,deptAddress) VALUES(?,?)";
        Connection conn=null;
        PreparedStatement pstmt=null;
        try {
          conn = BaseDao.getConnection();
          pstmt=BaseDao.setParam(conn,sql, dept.getDeptName(),dept.getDeptAddress());
          //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
          int result=BaseDao.exeUpdate(pstmt);
          if(result>0) {
            System.out.println("插入成功!");
          }else {
            System.out.println("插入失败!");
          }
        } catch (SQLException e) {
          e.printStackTrace();
        }finally {
          BaseDao.closeAll(conn,pstmt,null);
        }
  }
  @Override
  public void deptDel(int deptNo) {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
    //JDBC需要这个JAR包来完成我们对数据库的访问
    //jar包其实就是很多的字节码文件
    //2.连接数据库
    //连接数据库的四个变量
    String driver="com.mysql.jdbc.Driver";
    //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
    String url="jdbc:mysql://localhost:3306/myschool";
    String userName="root";
    String userPwd="root";
    String sql="delete from dept where deptNo=?";
    //3.加载驱动
    try {
      Class.forName(driver);
    } catch (ClassNotFoundException e1) {
      e1.printStackTrace();
    }
    //可以使用DriverManager获取连接对象
    Connection conn=null;
    PreparedStatement pstmt=null;
    try {
      conn = DriverManager.getConnection(url, userName, userPwd);
      //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
      pstmt=conn.prepareStatement(sql);
      pstmt.setInt(1, deptNo);
      //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
      int result=pstmt.executeUpdate();
      if(result>0) {
        System.out.println("删除成功!");
      }else {
        System.out.println("删除失败!");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally {
      try {
        if(pstmt!=null) {
          pstmt.close();
        }
        if(conn!=null) {
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
  @Override
  public void deptUpdate(Dept dept) {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
        //JDBC需要这个JAR包来完成我们对数据库的访问
        //jar包其实就是很多的字节码文件
        //2.连接数据库
        //连接数据库的四个变量
        String driver="com.mysql.jdbc.Driver";
        //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
        String url="jdbc:mysql://localhost:3306/myschool";
        String userName="root";
        String userPwd="root";
        String sql="UPDATE DEPT SET deptAddress=? , deptName=?  WHERE deptno=?";
        //3.加载驱动
        try {
          Class.forName(driver);
        } catch (ClassNotFoundException e1) {
          e1.printStackTrace();
        }
        //可以使用DriverManager获取连接对象
        Connection conn=null;
        PreparedStatement pstmt=null;
        try {
          conn = DriverManager.getConnection(url, userName, userPwd);
          //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
          pstmt=conn.prepareStatement(sql);
          pstmt.setString(1,dept.getDeptAddress());
          pstmt.setString(2,dept.getDeptName());
          pstmt.setInt(3, dept.getDeptNo());
          //增删改都是对数据库的记录进行更改,他们都是使用executeUpdate这个方法来完成,返回值都是受影响行数
          int result=pstmt.executeUpdate();
          if(result>0) {
            System.out.println("修改成功!");
          }else {
            System.out.println("修改失败!");
          }
        } catch (SQLException e) {
          e.printStackTrace();
        }finally {
          try {
            if(pstmt!=null) {
              pstmt.close();
            }
            if(conn!=null) {
              conn.close();
            }
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
  }
  @Override
  public List<Dept> deptQuery() {
    //1.mysql-connector-java-5.1.39-bin.jar添加到构建路径
        //JDBC需要这个JAR包来完成我们对数据库的访问
        //jar包其实就是很多的字节码文件
        //2.连接数据库
        //连接数据库的四个变量
        String driver="com.mysql.jdbc.Driver";
        //如果使用的是jdbc:mysql://127.0.0.1:3306/myschool;那么我们要注意必须将配置里面的远程访问打开
        String url="jdbc:mysql://localhost:3306/myschool";
        String userName="root";
        String userPwd="root";
        String sql="SELECT * from dept";
        List<Dept> list=new ArrayList<Dept>();
        //3.加载驱动
        try {
          Class.forName(driver);
        } catch (ClassNotFoundException e1) {
          e1.printStackTrace();
        }
        //可以使用DriverManager获取连接对象
        Connection conn=null;
        PreparedStatement pstmt=null;
        ResultSet rs=null;
        try {
          conn = DriverManager.getConnection(url, userName, userPwd);
          //通过连接对象Connection得到一个PreparedStatement对象,他可以帮助我们完成针对数据库的增删查改操作
          pstmt=conn.prepareStatement(sql);
          rs=pstmt.executeQuery();
          while(rs.next()) {
            //下面两种凡是的区别,一般使用第二种方式,第一种方式如果我现在调换了列的位置,那么我们要去修改下面的代码
            //第二种方式根据列名来获取值,那么我们不管怎么去修改列的位置,都不会影响到我们的取值
            int deptNo=rs.getInt(1);//通过索引取值
            String deptName=rs.getString("deptName");//通过列名
            String deptAddress=rs.getString("deptAddress");
            System.out.println("deptNo:"+deptNo+" deptName: "+deptName+" deptAddress: "+deptAddress);
            list.add(new Dept(deptNo,deptName,deptAddress));
          }
        } catch (SQLException e) {
          e.printStackTrace();
        }finally {
          try {
            if(rs!=null) {
              rs.close();
            }
            if(pstmt!=null) {
              pstmt.close();
            }
            if(conn!=null) {
              conn.close();
            }
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
    return list;
  }
}

TestDept

package com.etc.option;
import com.etc.dao.DeptDao;
import com.etc.dao.impl.DeptDaoImpl;
import com.etc.entity.Dept;
public class TestDept {
    public static void main(String[] args) {
      DeptDao dd=new DeptDaoImpl();//实例了对应的接口
      //新增
      Dept dept=new Dept("公关部","北京");
      dd.deptAdd(dept);
      //修改
//      Dept dept=new Dept(7,"公关部1","上海");
//      dd.deptUpdate(dept);
      //删除
      //dd.deptDel(7);
      //查询
    /*  List<Dept> list=dd.deptQuery();
      for(Dept dept1:list) {
        System.out.println(dept1);
      }*/
    }
}

不懂的朋友仔细看看我的注释,我这注释写的相当良心了。

老铁,如果确实对你有帮助请点个免费的赞鼓励一下

白嫖不好,创作不易。各位的点赞就是我创作的最大动力,如果我有哪里写的不对,欢迎评论区留言进行指正,我们下篇文章见!


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
3天前
|
SQL Java 中间件
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
在BeetISQL 2.13.8版本中,客户使用batch insert向yashandb表插入数据并尝试获取自动生成的sequence id时,出现类型转换异常。原因是beetlsql在prepareStatement时未指定返回列,导致yashan JDBC驱动返回rowid(字符串),与Java Bean中的数字类型tid不匹配。此问题影响业务流程,使无法正确获取sequence id。解决方法包括:1) 在batchInsert时不返回自动生成的sequence id;2) 升级至BeetISQL 3,其已修正该问题。
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
|
5天前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
48 17
|
8天前
|
Java 编译器 开发者
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
60 25
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
115 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
1月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
99 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
1月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
107 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
2月前
|
SQL Java 关系型数据库
使用 JDBC 实现 Java 数据库操作
JDBC(Java Database Connectivity)是 Java 提供的数据库访问技术,允许通过 SQL 语句与数据库交互。本文详细介绍了 JDBC 的使用方法,包括环境准备、编程步骤和完整示例。
193 7
|
3天前
|
SQL 关系型数据库 MySQL
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
|
14天前
|
监控 关系型数据库 MySQL
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。

热门文章

最新文章