mysql数据库编程---JDBC增删改查
2021/10/25 19:13:08
本文主要是介绍mysql数据库编程---JDBC增删改查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 数据库编程是指通过代码实现一个MYSQL客户端,同样是通过网络和服务器进行交互,数据库会给我们提供一组API来方便实现
API:application programming interface ,提供了一组函数/类/或方法,让用户直接去使用,有时可称为接口。
- MYSQL,ORACLE,SQL SERVER 等数据库都有不同的API,通过适配器(adapter)把不同种类的API转成JDBC统一的API
适配器(adapter):java中称为数据库驱动程序,不同数据库需要不同的驱动程序,java中的数据库驱动程序是一个独立的“jar包”,一堆二进制文件的集合。
- maven仓库:jar包的应用商店,在这里下载不同数据库对应的jar包,注意版本对应
- 导入jar包:
- 在IDEA的工程中创建一个目录,把jar包拷贝进去。
- 配置项目的一些属性,让项目能够找到jar包。
- JDBC中以DataSourse API为主。
- 具体的程序实现:
- 先创建Database对象。
- 创建Connection对象,和数据库建立连接(相当于打开了mysql客户端,输入了密码,连接成功)。
- 拼装SQL语句,用到了prepare,Statement对象(客户端输入sql语句)。
- 执行SQL语句(在客户端敲下回车)。
- 查看服务器返回的结果(客户端显示结果)。
- 关闭连接,释放资源,后创建的先释放(退出客户端)。
- 程序
- JDBC插入数据
package jar1024; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; //JDBC插入数据 public class TestJDBC { public static void main(String[] args) throws SQLException { //1.先创建DataSource对象(DataSource对象生命周期应该是要跟随整个程序) DataSource dataSource = new MysqlDataSource(); //接下来针对datasource进行配置,以便后面能顺利访问数据库 //主要配置三个方面信息,URL,User,Password 需要向下转型 ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("123456"); //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了 //Connection的包是java.sql //如果不正常就会抛出SQLexception异常 //connection生命周期较短,每次请求可创建一个新的connection Connection connection = dataSource.getConnection(); //3.拼装sql语句 ,用到prepare,Statement 对象 int id = 1; String name = "cao"; int classId = 10; //?是占位符,可以把具体的变量的值替换到?位置 String sql = "insert into student values(?,?,?)"; PreparedStatement statement = connection.prepareStatement(sql); //1,2,3相当于?的下标 statement.setInt(1,id); statement.setString(2,name); statement.setInt(3,classId); System.out.println("statement" + statement); //4.拼装好之后,执行SQL //insert delete update 都使用executeUpdate 方法来执行 //select 就使用executeQuery来执行 //返回值表示此次操作修改了多少行 int ret = statement.executeUpdate(); System.out.println("ret" + ret); //5.执行完毕后,关闭释放相关资源 //一定是后创建的先释放,注意顺序 statement.close(); connection.close(); } }
2. JDBC查找
package jar1024; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; //JDBC查找 public class TestJDBCSelect { public static void main(String[] args) throws SQLException { //1.先创建DataSource对象 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("123456"); //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了 Connection connection = dataSource.getConnection(); //3.拼装sql语句 ,用到prepareStatement 对象 String sql = "select * from student"; PreparedStatement statement = connection.prepareStatement(sql); //4.拼装好之后,执行SQL ResultSet resultSet = statement.executeQuery(); //5.遍历结果集,遍历过程类似于使用迭代器遍历集合类 //结果集相当于一张表,每张表有很多行,每一行是一条记录(又包含很多列) //next()一方面判定当前是否存在下一行,另一方面如果存在下一行就获取到这一行 //可以直观地把resultSet对象想象成是一个光标 while(resultSet.next()) { //resultSet的光标指向当前行,就可以把当前行中的列数据获取到 int id = resultSet.getInt("id"); String name = resultSet.getString("name"); int classId = resultSet.getInt("classId"); System.out.println(" id: " + id + " name: " + name + " classId: " + classId); } //6.执行完毕后,关闭释放相关资源 //一定是后创建的先释放,注意顺序 resultSet.close(); statement.close(); connection.close(); } }
3. JDBC删除
package jar1024; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; //JDBC删除 public class TestJDBCDelete { public static void main(String[] args) throws SQLException { Scanner scanner = new Scanner(System.in); System.out.println("请输入要删除的学生姓名: "); String name = scanner.next(); //1.先创建DataSource对象 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("123456"); //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了 Connection connection = dataSource.getConnection(); //3.拼装sql语句 ,用到prepareStatement 对象 String sql = "delete from student where name = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1,name); //4.拼装好之后,执行SQL int ret = statement.executeUpdate(); if (ret == 1) { System.out.println("删除成功"); }else{ System.out.println("删除失败"); } //5.关闭并释放资源 statement.close(); connection.close(); } }
4. JDBC修改
package jar1024; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; //JDBC修改 public class TestJDBCUpdate { public static void main(String[] args) throws SQLException { //让用户输入要修改id为n的同学姓名 Scanner scanner = new Scanner(System.in); System.out.println("请输入要修改的学生id: "); int id = scanner.nextInt(); System.out.println("请输入要修改的同学姓名: "); String name = scanner.next(); //1.先创建DataSource对象 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jar1024?characterEncoding=utf-8&useSSL=true"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("123456"); //2.创建Connection对象,和 数据库建立连接,就可以和数据库进行后续的数据传输了 Connection connection = dataSource.getConnection(); //3.拼装sql语句 ,用到prepareStatement 对象 String sql = "update student set name = ? where id = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1,name); statement.setInt(2,id); //4.拼装好之后,执行SQL int ret = statement.executeUpdate(); if (ret == 1) { System.out.println("修改成功"); }else{ System.out.println("修改失败"); } //5.关闭并释放资源 statement.close(); connection.close(); } }
这篇关于mysql数据库编程---JDBC增删改查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程