1
Java 连接操作 MySQL 数据库(增删查改操作)
发布于: 2021 年 06 月 17 日

MySQL 操作有不懂的,可查看我的 MySQL教程
环境
MySQL 5.5 版本
eclipse
MySQL 连接驱动
mysql-connector-java-5.1.18-bin.jar
mysql8.0 之前的版本与之后的版本使用的 jar 包是不同的,在使用时也有一定的区别。这里,我的 MySQL 版本为 5.5。连接驱动链接放在文末,需要可自行下载
准备工作
将 jar 包添加到项目中,右键项目,如下,选择
Configure Build Path...
将刚才下载好的 jar 包添加进去即可
增删查改操作
首先,建立一个数据库模板
DBConfig.java
注意:要提前建立一个数据库,然后在
JDBC_URL中填写你自己的数据库名称
/* * 若尘 */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(); } }}
复制代码
建表操作
CreateTest.java
/* * 若尘 */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()); } }
}
复制代码
加载成功创建成功
复制代码
插入操作
InsertTest.java
/* * 若尘 */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(); } }}
复制代码
加载成功插入成功
复制代码
更新操作
UpdateTest.java
/* * 若尘 */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(); } }}
复制代码
加载成功修改成功修改成功
复制代码
删除、查询操作
SearchTest.java
/* * 若尘 */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 小王 800003 小张 60
复制代码
mysql-connector-java-5.1.18-bin.jar 链接:https://pan.baidu.com/s/1Ep7pKfFnHq_S8oN1Z4kaNg 提取码:tz8n
划线
评论
复制
发布于: 2021 年 06 月 17 日阅读数: 10
版权声明: 本文为 InfoQ 作者【若尘】的原创文章。
原文链接:【http://xie.infoq.cn/article/5a433943638aabf54e88e0816】。文章转载请联系作者。
若尘
关注
还未添加个人签名 2021.01.11 加入
还未添加个人简介











评论