java连接mysql实现增删改查_java连接数据库,实现增删改查操作

一.前言

写这个文章的原因是为了巩固自己连接数据库步骤

希望对初次学习数据库的朋友有所帮助

二.MySQL数据库连接

数据库连接步骤加载驱动程序,获取数据库连接对象

2.1驱动jar包

2.2代码

package cn.sg.xx.test;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class Main {

public static void main(String[] args) throws SQLException, ClassNotFoundException {

try {

//数据库驱动参数

String Driver = "com.mysql.cj.jdbc.Driver";//"com.mysql.jdbc.Driver"-->驱动地址已经过时

//连接的URL,数据库名为test

String URL = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf8";//后边的参数serverTimezone-->指定时区,characterEncoding-->编码格式

//数据库用户名

String Username = "root";

//数据库密码

String Password = "123";

//加载MySQL驱动程序

Class.forName(Driver);

//与MySQL数据库创立连接

Connection con = null;

con = DriverManager.getConnection(URL, Username, Password);

} catch (ClassNotFoundException e) {

System.out.println("驱动程序没有找到!");

} catch (SQLException e) {

System.out.println("SQL异常!");

}

}

}

三.增加表数据

String sql = "INSERT INTO test(id,NAME,sex) VALUES(?,?,?);";

建议写成这种语法,指定插入的列,可以防止表字段修改后,程序报错

使用PreparedStatement 进行sql语句的装配,可以防止sql注入

3.1代码

package cn.sg.xx.test;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class Main {

public static void main(String[] args) {

try {

//数据库驱动参数

String Driver = "com.mysql.cj.jdbc.Driver";//"com.mysql.jdbc.Driver"-->驱动地址已经过时

//连接的URL,数据库名为test

String URL = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf8";//后边的参数serverTimezone-->指定时区,characterEncoding-->编码格式

//数据库用户名

String Username = "root";

//数据库密码

String Password = "123";

//加载MySQL驱动程序

Class.forName(Driver);

//与MySQL数据库创立连接

Connection con = null;

con = DriverManager.getConnection(URL, Username, Password);

//sql语句装配,?为占位符

String sql = "INSERT INTO test(id,NAME,sex) VALUES(?,?,?);";

PreparedStatement stmt = con.prepareStatement(sql);

stmt.setInt(1, 2);

stmt.setString(2, "张三");

stmt.setString(3, "男");

stmt.executeUpdate();

//执行完数据库的操作有指令之后要释放资源,否则会导致内存的溢出

stmt.close();

con.close();

} catch (ClassNotFoundException e) {

System.out.println("驱动程序没有找到!");

} catch (SQLException e) {

System.out.println("SQL异常!");

}

}

}

四.删除表数据

删除表数据的操作和插入操作基本相同,只有sql语句不同

4.1代码

String sql = "DELETE FROM test WHERE id = 1";

PreparedStatement stmt = con.prepareStatement(sql);

stmt.executeUpdate();

五.修改表数据

同插入数据一样,仅仅修改sql语句为

UPDATE test SET sex = '女' WHERE id = 1

六.查找表数据

表数据的查找需要比上边的插入、删除操作多关闭ResoultSet资源

ResoultSet rs;

rs.close();

6.1代码

//查找表数据

String sql = "SELECT * FROM test";

PreparedStatement stmt = con.prepareStatement(sql);

ResultSet rs = stmt.executeQuery();

//从 rs 获取数据

while (rs.next()) {

//rs.getMetaData().getColumnCount() --> 获取表的列数

for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {

String colunmName = rs.getMetaData().getColumnName(i);//获取列名

Object temp = rs.getString(i);//获取该列对应元素的值

System.out.print(colunmName + "-->" + temp + "\t");

}

System.out.println();

99842a4b00f6a1540bf67168df65781c.png

七.全部代码

package cn.sg.xx.test;

import java.sql.*;

public class Main {

public static void main(String[] args) throws SQLException {

Connection con = null;

PreparedStatement stmt = null;

ResultSet rs = null;

try {

//数据库驱动参数

String Driver = "com.mysql.cj.jdbc.Driver";//"com.mysql.jdbc.Driver"-->驱动地址已经过时

//连接的URL,数据库名为test

String URL = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf8";//后边的参数serverTimezone-->指定时区,characterEncoding-->编码格式

//数据库用户名

String Username = "root";

//数据库密码

String Password = "123";

//加载MySQL驱动程序

Class.forName(Driver);

//与MySQL数据库创立连接

con = DriverManager.getConnection(URL, Username, Password);

//sql语句装配,?为占位符

String sql = "INSERT INTO test(id,NAME,sex) VALUES(?,?,?);";

stmt = con.prepareStatement(sql);

stmt.setInt(1, 2);

stmt.setString(2, "张三");

stmt.setString(3, "男");

stmt.executeUpdate();

//删除表数据

sql = "DELETE FROM test WHERE id = 1";

stmt = con.prepareStatement(sql);

stmt.executeUpdate();

//修改表数据

sql = "UPDATE test SET sex = '女' WHERE id = 1";

stmt = con.prepareStatement(sql);

stmt.executeUpdate();

//查找表数据

sql = "SELECT * FROM test";

stmt = con.prepareStatement(sql);

rs = stmt.executeQuery();

//从 rs 获取数据

while (rs.next()) {

//rs.getMetaData().getColumnCount() --> 获取表的列数

for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {

String colunmName = rs.getMetaData().getColumnName(i);//获取列名

Object temp = rs.getString(i);//获取该列对应元素的值

System.out.print(colunmName + "-->" + temp + "\t");

}

System.out.println();

}

//执行完数据库的操作有指令之后要释放资源,否则会导致内存的溢出

} catch (ClassNotFoundException e) {

System.out.println("驱动程序没有找到!");

} catch (SQLException e) {

System.out.println("SQL异常!");

} finally {

//关闭资源

if (rs != null)

rs.close();

if (stmt != null)

stmt.close();

if (con != null)

con.close();

}

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值