Bootstrap

Java 连接操作 MySQL 数据库(增删查改操作)

MySQL 操作有不懂的,可查看我的

环境

  • MySQL 5.5 版本

  • eclipse

  • MySQL 连接驱动

mysql8.0之前的版本与之后的版本使用的jar包是不同的,在使用时也有一定的区别。这里,我的 MySQL 版本为 5.5。

准备工作

  • 将 jar 包添加到项目中,右键项目,如下,选择

  • 将刚才下载好的 jar 包添加进去即可

增删查改操作

  • 首先,建立一个数据库模板

注意:要提前建立一个数据库,然后在中填写你自己的数据库名称

/*
 * 若尘
 */
package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


/**
 * 数据库连接和关闭工具类
 * @author ruochen
 * @version 1.0
 */
public class DBConfig {
  /** 定义数据库驱动类名称 */
  private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  
  /** 数据库连接地址 */
  private static final String JDBC_URL = "jdbc:mysql://127.0.0.1:3306/JavaDB?characterEncoding=utf8";
  
  /** 数据库用户名 */
  private static final String JDBC_USERNAME = "root";
  
  /** 数据库密码 */
  private static final String JDBC_PASSWORD = "root";
  
  /** 数据库连接对象 */
  private static Connection conn = null;
  
  /**
   * 获得链接
   * @return
   */
  public static Connection getConnection() {
    try {
      try {
        // 加载驱动程序
        Class.forName(JDBC_DRIVER);
        System.out.println("加载成功");
      } catch (java.lang.ClassNotFoundException e) {
        System.out.println("ForName: " + e.getMessage());
      }
      conn = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return conn;
  }
  
  public static void closeConnection(ResultSet rs, Statement ps, Connection conn) {
    try {
      if (null != rs) {
        rs.close();
      }
      if (null != ps) {
        ps.close();
      }
      if (null != conn) {
        conn.close();
      }
    } catch (Exception e) {
      System.out.println("Close connection error");
      e.printStackTrace();
    }
  }
}

  • 建表操作

/*
 * 若尘
 */
package test;

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

/**
 * JDBC链接数据库,创建数据表 
 * @author ruochen
 * @version 1.0
 */
public class CreateTest {
  public static void main(String[] args) {
    Connection conn = DBConfig.getConnection();
    try {
      Statement st = conn.createStatement();
      ResultSet re = conn.getMetaData().getTables(null, null, "student", null);
      if (re.next()) {
        System.out.println("表已经存在");
      } else {
      // 建表语句
      String sql = "create table student ( "
          + "id char(10),"
          + "name char(16),"
          + "score integer" + ")";
      st.executeUpdate(sql);
      System.out.println("创建成功");
      }
      DBConfig.closeConnection(re, st, conn);
    } catch (SQLException e) {
      System.out.println("SQLException: " + e.getMessage());
    }
  }

}

加载成功
创建成功

  • 插入操作

/*
 * 若尘
 */
package test;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 数据表中插入数据 
 * @author ruochen
 * @version 1.0
 */
public class InsertTest {

  public static void main(String[] args) {
    Connection conn = DBConfig.getConnection();
    try {
      Statement st = conn.createStatement();
      String r1 = "insert into student values('0001', '小王', 80)";
      String r2 = "insert into student values('0002', '小李', 82)";
      String r3 = "insert into student values('0003', '小张', 90)";
      
      st.executeUpdate(r1);
      st.executeUpdate(r2);
      st.executeUpdate(r3);
      System.out.println("插入成功");
      
      DBConfig.closeConnection(null, st, conn);
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

加载成功
插入成功

  • 更新操作

/*
 * 若尘
 */
package test;

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

/**
 * 更新数据库操作 
 * @author ruochen
 * @version 1.0
 */
public class UpdateTest {

  public static void main(String[] args) {
    Connection conn = DBConfig.getConnection();
    
    String[] id = {"0002", "0003"};
    int[] score = {70, 60};
    PreparedStatement ps;
    try {
      ps = conn.prepareStatement("Update student set score=? where id=?");
      int i = 0, idlen = id.length;
      do {
        ps.setInt(1, score[i]);
        ps.setString(2, id[i]);
        ps.executeUpdate();
        System.out.println("修改成功");
        ++i;
      } while (i < idlen);
      DBConfig.closeConnection(null, ps, conn);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

加载成功
修改成功
修改成功

  • 删除、查询操作

/*
 * 若尘
 */
package test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 删除、查询数据库操作
 * @author ruochen
 * @version 1.0
 */
public class SearchTest {
  public static void main(String[] args) {
    Connection conn = DBConfig.getConnection();
    try {
      Statement st = conn.createStatement(); 
      PreparedStatement ps = conn.prepareStatement("delete from student where id=?");
      ps.setString(1, "0002");
      ps.executeUpdate();
      System.out.println("删除成功");
      ResultSet rs = st.executeQuery("select * from student");
      while (rs.next()) {
        System.out.println(rs.getString("id") + "\t"
            + rs.getString("name") + "\t" + rs.getShort("score"));
      }
      st.close();
      DBConfig.closeConnection(rs, ps, conn);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

}

加载成功
删除成功
0001  小王  80
0003  小张  60

mysql-connector-java-5.1.18-bin.jar链接:https://pan.baidu.com/s/1Ep7pKfFnHq_S8oN1Z4kaNg提取码:tz8n