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 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> idea从零到精通(11)之用JDBC连接Mysql数据库 -> 正文阅读

[Java知识库]idea从零到精通(11)之用JDBC连接Mysql数据库

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

在这里插入图片描述

引言

我本来是一直用eclipse和myeclipse的老程序员了,很多我的粉丝小伙伴都说他们要用idea,问我怎么不用idea,其实明哥觉得用啥开发工具都不是重点,重点是要跟着明哥多学Java知识、多练习,但是作为一个宠粉的人,我怎么能拒绝粉丝的要求呢,于是我偷偷的去学习了一波(拿来吧你),然后就写了这个系列,希望小伙伴们能有所收获,明哥会努力更新的。

导航

? idea从零到精通目录索引
?上一篇【10】JDK下载安装与配置
?下一篇【12】用C3P0连接Mysql数据库

热门专栏推荐

【1】Java小游戏(俄罗斯方块、飞机大战、植物大战僵尸等)
【2】JavaWeb项目实战(图书管理、在线考试、宿舍管理等)
【3】JavaScript精彩实例(飞机大战、贪吃蛇、验证码等)
【4】Java小白入门200例
【5】从零学Java、趣学Java
【6】Idea从零到精通

一、创建web项目

File – NEW – Project – Java Enterprise – Next
在这里插入图片描述
填入好工程名,点击完成
在这里插入图片描述

二、加入Mysql驱动

打开项目,一次打开目录,web–WEB-INF–lib 加入Mysql的驱动jar包。
在这里插入图片描述
File – Project Structure… – Libraies

在这里插入图片描述
点击“加号” – Java
在这里插入图片描述
选择好你项目中lib下的驱动jar包,点击OK
在这里插入图片描述
加入后效果图如下,点击OK
在这里插入图片描述

三、编写查询代码

  1. 创建数据库连接类
    在这里插入图片描述

  2. 加载JDBC驱动程序
    在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。
    在新创建的类中编写代码如下:

import java.sql.Connection;

public class DBConnection {

  //获取数据库连接
  public Connection getConnection(){
    Connection conn = null;//定义返回
    try{//加载MySql的驱动类
      Class.forName("com.mysql.jdbc.Driver") ;
    }catch(ClassNotFoundException e){
      System.out.println("找不到驱动程序类 ,加载驱动失败!");
      e.printStackTrace() ;
    }

    //返回
    return conn;
  }
}
  1. 创建数据库的连接
    要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

  //获取数据库连接
  public Connection getConnection() {
    Connection conn = null;//定义返回
    try {//加载MySql的驱动类
      Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
      System.out.println("找不到驱动程序类 ,加载驱动失败!");
      e.printStackTrace();
    }
    //连接MySql数据库,用户名和密码都是root
    String url = "jdbc:mysql://localhost:3306/library";
    String username = "root";
    String password = "root";

    try {
      conn = DriverManager.getConnection(url, username, password);
    } catch (SQLException se) {
      System.out.println("数据库连接失败!");
      se.printStackTrace();
    }
    //返回
    return conn;
  }
}

  1. 创建preparedStatement、执行查询、遍历结果集、关闭JDBC对象资源
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC_Test {

  static Connection conn = null;
  static Statement stmt;

  public static void main(String[] args) {
    query();
  }

  /* 查询数据库,输出符合要求的记录的情况*/
  public static void query() {
    ResultSet rs = null;
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try {
      String sql = "select * from user";     // 查询数据的sql语句
      stmt = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量

      rs = stmt.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集
      System.out.println("最后的查询结果为:");
      while (rs.next()) { // 判断是否还有下一个数据
        // 根据字段名获取相应的值
        String name = rs.getString("name");
        String no = rs.getString("no");

        //输出查到的记录的各个字段的值
        System.out.println("名字:" + name + ",账号 " + no);

      }
      conn.close();   //关闭数据库连接

    } catch (SQLException e) {
      System.out.println("查询数据失败");
    }

    if (rs != null) {   // 关闭记录集
      try {
        rs.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (stmt != null) {   // 关闭声明
      try {
        stmt.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
    if (conn != null) {  // 关闭连接对象
      try {
        conn.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

四、测试查询代码

运行以上代码结果如下:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2

五、编写插入代码

//编写一个插入测试代码
  public static void insert() {
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try {
      String sql = "insert into user(no,name,password,sex,phone,role_id,isValid) values(?,?,?,?,?,?,?)";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"ming");
      ps.setString(2,"编程界明世隐");
      ps.setString(3,"123456");
      ps.setString(4,"1");
      ps.setString(5,"13579");
      ps.setString(6,"0");
      ps.setString(7,"Y");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null) {   // 关闭声明
        try {
          ps.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (conn != null) {  // 关闭连接对象
        try {
          conn.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    } catch (SQLException e) {
      System.out.println("插入数据失败");
    }
  }

但是运行发现是插入到数据库的中文是乱码,需要在获取数据库连接代码的数据库地址做修改,如下(当然前提是你数据库的编码也设置成了UTF-8):

String url = “jdbc:mysql://localhost:3306/library?characterEncoding=utf8”;

调用 insert和query方法

  public static void main(String[] args) {
    insert();
    query();
  }

运行结果:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2
名字:编程界明世隐,账号 ming

可以看到插入的新数据 “编程界明世隐”。

六、编写修改代码

//编写一个修改测试代码
  public static void update() {
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try {
      String sql = "update user set no=? where name=?";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"ming123");
      ps.setString(2,"编程界明世隐");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null) {   // 关闭声明
        try {
          ps.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (conn != null) {  // 关闭连接对象
        try {
          conn.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    } catch (SQLException e) {
      System.out.println("修改数据失败");
    }
  }

在main方法中调用 update 和 query方法

public static void main(String[] args) {
    //insert();
    update();
    query();
  }

运行结果

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2
名字:编程界明世隐,账号 ming123

编程界明世隐 对应的账号被改为了 “ming123”

七、编写删除代码

//编写一个测试测试代码
  public static void delete() {
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try {
      String sql = "delete from user where name=?";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"编程界明世隐");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null) {   // 关闭声明
        try {
          ps.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
      if (conn != null) {  // 关闭连接对象
        try {
          conn.close();
        } catch (SQLException e) {
          e.printStackTrace();
        }
      }
    } catch (SQLException e) {
      System.out.println("修改数据失败");
    }
  }

在main方法中调用

  public static void main(String[] args) {
    //insert();
    //update();
    delete();
    query();
  }

运行结果:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2

可以看到 “编程界明世隐”这条记录被删除。

小结

这节总结了“ 用JDBC连接Mysql数据库 ”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

? idea从零到精通目录索引
?上一篇【10】JDK下载安装与配置
?下一篇【12】用C3P0连接Mysql数据库

热门专栏推荐

【1】Java小游戏(俄罗斯方块、飞机大战、植物大战僵尸等)
【2】JavaWeb项目实战(图书管理、在线考试、宿舍管理等)
【3】JavaScript精彩实例(飞机大战、贪吃蛇、验证码等)
【4】Java小白入门200例
【5】从零学Java、趣学Java
【6】Idea从零到精通
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:43:52  更:2021-11-26 08:44:14 
 
开发: 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:51:06-

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