目录
一、增:往数据库中增加数据
1、创建数据源
//1、创建"数据源" (DataSource)
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/work_0318?characterEncoding=utf8&useSSL=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("1234");
setUrl:
MySQL 数据库连接的 URL 参数格式如下:
jdbc:mysql://服务器地址:端口/数据库名?参数名=参数值
一般情况下,大家只有数据库名与我这里的不同,其他的都是相同的。
setUser:
用户名。一般情况下都是root。
setPassWord:
数据库密码。这里是大家自己设置的数据库的密码。
2、建立数据库连接
//2、与数据库服务器建立连接
Connection connection = dataSource.getConnection();
需要注意!这边要选择第一个Connection,否则会报错!
在代码写完后会出现报错,这时我们只要声明一下异常即可解决。
3、创建操作命令
//3、创建能操作数据库的 sql 命令
String sql = "insert into test values (18,'张三')";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
1、创建 sql 命令
假设在一个 test(age int,name varchar(20)) 表格中插入数据,我们需要先构建一条能操作数据库的 sql 命令。
2、发送命令
Statement对象主要是将 SQL 语句发送到数据库中。
JDBC API 提供了三种Statement对象:
·Statement
用于执行不带参数的简单 SQL 语句
·PreparedStatement
用于执行带或不带参数的 SQL 语句
SQL 语句会预编译在数据库系统
执行速度快于 Statement 对象
·CallableStatement
用于执行数据库存储过程中的调用
实际开发中我们最常用的是 PreparedStatement 对象。
4、执行 SQL 命令
//4、执行 SQL:把刚刚解析好的语句发送给数据库服务器
// 返回值是一个int 类型的数,表明操作影响了几行
int n = preparedStatement.executeUpdate();
System.out.println("n = " + n);
掌握两种 SQL 的执行方法:
1、executeQuery()
方法执行后返回单个结果集,通常用于select语句
2、executeUpdate
方法执行后返回一个整数,指示受影响的行数。通常用于 update、insert、delete 语句
此时执行代码,我们就可以发现,表格会多出一条我们添加的数据,n的值为1。
5、释放资源
//5、释放资源 (先使用的后释放
// 主要是释放 语句对象 和 连接对象,DataSource不需要释放
preparedStatement.close();
connection.close();
完整源码:
import com.mysql.cj.jdbc.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Insert_Demo {
public static void main(String[] args) throws SQLException {
//1、创建"数据源" (DataSource)
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/work_0318?characterEncoding=utf8&useSSL=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("1234");
//2、与数据库服务器建立连接
Connection connection = dataSource.getConnection();
//3、创建能操作数据库的 sql 命令
String sql = "insert into test values (18,'张三')";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4、执行 SQL:把刚刚解析好的语句发送给数据库服务器
// 返回值是一个int 类型的数,表明操作影响了几行
int n = preparedStatement.executeUpdate();
System.out.println("n = " + n);
//5、释放资源 (先使用的后释放
// 主要是释放 语句对象 和 连接对象,DataSource不需要释放
preparedStatement.close();
connection.close();
}
}
二、删:从数据库中删除数据
基本操作还和增加数据中的一样,只是把sql命令操作修改一下。
完整源码:
import com.mysql.cj.jdbc.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Delete_Demo {
public static void main(String[] args) throws SQLException {
//1、创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/work_0318?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2、和数据库服务器建立连接 (记得声明异常
Connection connection = dataSource.getConnection();
//3、构建操作数据库的 sql 语句
String sql = "delete from test where name = '张三'";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4、执行 SQL:把刚刚解析好的语句发送给数据库服务器
// 返回值是一个int 类型的数,表明操作影响了几行
int n = preparedStatement.executeUpdate();
System.out.println("n = " + n);
//5、释放资源
preparedStatement.close();
connection.close();
}
}
三、改:修改数据库中的数据
基本操作还和增加数据中的一样,只是把sql命令操作修改一下。
完整源码:
public class Update_Demo {
public static void main(String[] args) throws SQLException {
//1、创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/work_0318?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2、与服务器建立连接 (记得声明异常
Connection connection = dataSource.getConnection();
//3、创建能操作数据库的 sql 语句
//(将张三的年龄改为1 岁)
String sql = "update test set age = 1 where name = '张三'";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4、执行 SQL:把刚刚解析好的语句发送给数据库服务器
// 返回值是一个int 类型的数,表明操作影响了几行
int n = preparedStatement.executeUpdate();
System.out.println("n = " + n);
//5、释放资源
preparedStatement.close();
connection.close();
}
}
执行前后:
四、查:查询数据库中的数据
基本操作还和增加数据中的一样,只是把sql命令操作修改一下。这边还需要额外多出的就是一个结果集。
需要注意:结果集会给出许多get方法,当你想查询的数据类型是什么方法的时候,就使用哪种get方法。
完整源码:
import com.mysql.cj.jdbc.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.*;
public class Select_Demo {
public static void main(String[] args) throws SQLException {
//1、创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/work_0318?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2、和数据库服务器建立连接
Connection connection = dataSource.getConnection();
//3、构建操作数据库的 sql 语句
String sql = "select * from test";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4、执行 sql
//ResultSet 是结果集,拿到了一个表格一样的数据
//我们遍历结果集就可以得到表格中的数据内容了
ResultSet resultSet = preparedStatement.executeQuery();
//5、遍历结果集合
while (resultSet.next()) {
//读取数据
int age = resultSet.getInt("age"); //获取age列的数据
String name = resultSet.getString("name"); //获取name列的数据
System.out.println("age = "+age+" name = "+name);
}
//6、释放资源
resultSet.close();
preparedStatement.close();
connection.close();
}
}
运行结果:
以上就是 MySQL:基于 JDBC 实现增删改查(执行过程 + 源代码超详解) 的全部内容了,希望能对您有所帮助!