目录
一、增:往数据库中增加数据
1、创建数据源
setUrl:
setUser:
setPassWord:
2、建立数据库连接
3、创建操作命令
1、创建 sql 命令
2、发送命令
4、执行 SQL 命令
5、释放资源
完整源码:
二、删:从数据库中删除数据
完整源码:
三、改:修改数据库中的数据
完整源码:
四、查:查询数据库中的数据
完整源码:
一、增:往数据库中增加数据
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 实现增删改查(执行过程 + 源代码超详解) 的全部内容了,希望能对您有所帮助!