当前位置: 首页 > 后端技术 > Java

mysql数据库编程-JDBC增删改查

时间:2023-04-01 22:21:11 Java

数据库编程是指通过代码实现一个MYSQL客户端,同时通过网络与服务器进行交互。数据库会为我们提供一组API,方便API的实现:应用程序编程接口,提供一组函数/类/或方法供用户直接使用,有时也称为接口。MYSQL、ORACLE、SQLSERVER等数据库都有不同的API。Adapters(适配器)将不同类型的API转换为JDBC统一API适配器(适配器):在java训练中称为数据库驱动程序,不同的数据库需要不同的驱动程序。程序,java中的数据库驱动是一个独立的“jar包”,一堆二进制文件的集合。Maven仓库:jar包的应用商店,这里下载不同数据库对应的jar包,注意导入jar包对应的版本:在IDEA工程中创建一个目录,将jar包拷贝进去。配置项目的一些属性,使项目能够找到jar包。在JDBC中,DataSourceAPI是主要的API。具体程序实现:首先创建一个Database对象。创建Connection对象,与数据库建立连接(相当于打开mysql客户端,输入密码,连接成功)。为了组装SQL语句,使用了prepare和Statement对象(客户端输入sql语句)。执行SQL语句(在客户端回车)。查看服务器返回的结果(客户端显示结果)。关闭连接,释放资源,先释放创建的(退出客户端)。程序JDBC插入数据包jar1024;importcom.mysql.jdbc.jdbc2.optional.MysqlDataSource;importjavax.sql.DataSource;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;//JDBC插入数据publicclassTestJDBC{publicstaticvoidmain(String[]args)throwsSQLException{//1.首先创建一个DataSource对象(DataSource对象的生命周期要跟随整个程序)DataSourcedataSource=newMysqlDataSource();//接下来配置datasource,以便后面可以顺利访问数据库//主要配置三个方面information,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.lang.newconnectionConnectionconnection=dataSource.getConnection();//3.组装sql语句,使用prepare,Statementobjectintid=1;Stringname="cao";intclassId=10;//?是一个占位符,您可以将特定变量的值替换为?PositionStringsql="insertintostudentvalues(?,?,?)";PreparedStatementstatement=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//使用executeUpdate方法插入删除更新//select使用executeQuery执行//返回值表示本次操作修改了多少行intret=statement.executeUpdate();System.out.println("ret"+ret);//5.执行完后关闭释放相关资源//必须是后创建先释放,注意顺序statement.close();connection.close();}}JDBC搜索包jar1024;importcom.mysql.jdbc.jdbc2.optional.MysqlDataSource;importjavax.sql.DataSource;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;//JDBC找到publicclassTestJDBCSelect{publicstaticvoidmain(String[]args)抛出SQLException{//1。首先创建DataSource对象DataSourcedataSource=newMysqlDataSource();((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对象,建立连接有了数据库,就可以和数据库进行后续的数据传输Connectionconnection=dataSource.getConnection();//3.组装sql语句,使用prepareStatement对象Stringsql="select*fromstudent";PreparedStatementstatement=connection。prepareStatement(sql);//4.组装后,执行SQLResultSetresultSet=statement.executeQuery();//5.遍历结果集,遍历过程类似于使用迭代器遍历集合类//结果集相当于一个表,每个表中有很多行,每一行都是一条记录(并且包含很多列)//next()一方面判断是否有下一行,另一方面如果有下一行,就会得到这一行//可以直观的把resultSet对象看成一个游标while(resultSet.next()){//resultSet游标指向当前行,就可以得到列当前行数据intid=resultSet.getInt("id");Stringname=resultSet.getString("name");intclassId=resultSet.getInt("classId");System.out.println("id:"+id+"name:"+name+"classId:"+classId);}//6.执行完成后关闭并释放相关资源//必须是后创建先释放,注意顺序resultSet.close();statement.close();connection.close();}}JDBCdelete包jar1024;导入com.mysql.jdbc.jdbc2.optional.MysqlDataSource;importjavax.sql.DataSource;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.util.Scanner;//JDBCdeletepublicclassTestJDBCDelete{publicstaticvoidmain(String[]args)throwsSQLException{Scannerscanner=newScanner(System.in);System.out.println("请输入要删除的学生姓名:");Stringname=scanner.next();//1.首先创建DataSource对象DataSourcedataSource=newMysqlDataSource();((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对象,与数据库建立连接,然后与数据库进行后续的数据传输Connectionconnection=dataSource.getConnection();//3.组装sql语句,使用prepareStatement对象Stringsql="deletefromstudentwherename=?";PreparedStatementstatement=connection.prepareStatement(sql);statement.setString(1,name);//4.汇编后,执行SQLintret=statement.executeUpdate();if(ret==1){System.out.println("删除成功");}else{System.out.println("删除失败");}//5.关闭并释放资源语句。close();connection.close();}}JDBC修改包jar1024;importcom.mysql.jdbc.jdbc2.optional.MysqlDataSource;importjavax.sql.DataSource;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.util.Scanner;//JDBC修改publicclassTestJDBCUpdate{publicstaticvoidmain(String[]args)throwsSQLException{//让用户输入id为的同学的名字n待修改的扫描仪scanner=newScanner(System.in);System.out.println("请输入待修改的学号:");intid=scanner.nextInt();System.out.println("请输入要修改的学生姓名:");Stringname=scanner.next();//1.首先创建DataSource对象DataSourcedataSource=newMysqlDataSource();((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对象,与数据库建立连接,即可进入数据库行的后续数据传输Connectionconnection=dataSource.getConnection();//3.组装sql语句,使用prepareStatement对象Stringsql="updatestudentsetname=?whereid=?";PreparedStatementstatement=connection.prepareStatement(sql);statement.setString(1,name);statement.setInt(2,id);//4.组装完成后,执行SQLintret=statement.executeUpdate();if(ret==1){System.out.println("修改成功");}else{System.out.println("修改失败");}//5。关闭并释放资源statement.close();connection.close();}}