实验项目4 第1部分 JDBC数据库操作
jdbc连接数据库的四个步骤

jdbc连接数据库的四个步骤一、引入jdbc相关的jar包在使用jdbc连接数据库之前,需要先引入jdbc相关的jar包,以便在代码中使用jdbc的相关类和方法。
常用的jdbc jar包有mysql-connector-java、ojdbc等,根据所使用的数据库类型选择相应的jar包。
二、加载数据库驱动加载数据库驱动是使用jdbc连接数据库的第一步。
不同的数据库有不同的驱动类,需要根据所使用的数据库类型加载相应的驱动类。
加载驱动的方式有两种:一种是使用Class.forName()方法加载驱动类,另一种是使用DriverManager.registerDriver()方法注册驱动类。
三、建立数据库连接建立数据库连接是使用jdbc连接数据库的第二步。
在建立数据库连接之前,需要先获取数据库连接所需的连接信息,包括数据库的URL、用户名和密码。
数据库的URL是连接数据库的唯一标识,用户名和密码用于验证用户身份。
通过调用DriverManager.getConnection()方法,并传入连接信息参数,即可建立数据库连接。
四、执行数据库操作建立数据库连接之后,就可以执行数据库操作了。
数据库操作包括数据的增删改查等操作。
在执行数据库操作之前,需要创建Statement或PreparedStatement对象,并使用这些对象执行相应的SQL语句。
Statement对象用于执行静态SQL语句,而PreparedStatement对象用于执行带有参数的预编译SQL语句。
执行SQL语句后,可以通过ResultSet对象获取查询结果。
jdbc连接数据库的四个步骤如上所述,其中第一步是引入jdbc相关的jar包,第二步是加载数据库驱动,第三步是建立数据库连接,第四步是执行数据库操作。
通过这四个步骤,可以实现使用jdbc连接数据库,进行数据的增删改查等操作。
在使用jdbc连接数据库时,需要注意以下几点:1. 引入的jdbc jar包需要与所使用的数据库类型对应,否则无法正常连接数据库。
jdbc编程实验报告

jdbc编程实验报告JDBC编程实验报告一、实验目的本次实验的目的是通过JDBC编程实现Java程序与数据库的交互,掌握JDBC编程的基本方法和技巧。
二、实验环境本次实验使用的开发环境为Eclipse,数据库为MySQL。
三、实验步骤1. 导入JDBC驱动在Eclipse中创建Java项目后,需要将MySQL的JDBC驱动导入到项目中。
具体步骤为:右键项目 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs -> 选择MySQL的JDBC 驱动文件。
2. 连接数据库在Java程序中使用JDBC连接数据库需要使用以下代码:```javaClass.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/test ", "root", "123456");```其中,`com.mysql.jdbc.Driver`为MySQL的JDBC驱动类名,`jdbc:mysql://localhost:3306/test`为数据库连接地址,`root`为数据库用户名,`123456`为数据库密码。
3. 执行SQL语句在Java程序中使用JDBC执行SQL语句需要使用以下代码:```javaStatement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) {System.out.println(rs.getString("name"));}```其中,`conn.createStatement()`用于创建Statement对象,`stmt.executeQuery("SELECT * FROM user")`用于执行SQL查询语句,`rs.next()`用于遍历查询结果集,`rs.getString("name")`用于获取查询结果中名为name的字段的值。
简述jdbc访问数据库的一般流程

简述jdbc访问数据库的一般流程JDBC 是 Java Database Connectivity 的缩写,意为 Java 语言连接数据库。
使用 JDBC 访问数据库的一般流程如下:1. 加载和注册数据库驱动程序:在程序中引入所需的 JDBC 驱动程序,并将其注册到 Java 虚拟机中。
2. 连接数据库建立连接 (获得 Connection 对象):使用 JDBC API 提供的 Connection 对象连接到数据库,一般通过 URL、DriverManager 等方法获取 Connection 对象。
3. 操作数据库 (增查改删):使用 Connection 对象执行 SQL 语句,进行数据的增删改查操作。
可以使用 JDBC API 提供的Statement、ResultSet 等对象来实现。
4. 创建数据库操作对象 (用于执行 SQL 语句):根据需要创建相应的 DatabaseOperation 对象,用于执行 SQL 语句。
5. 关闭连接:在使用完 Connection 对象后,需要及时关闭连接以释放资源。
具体实现过程可以参考以下示例代码:```// 加载和注册数据库驱动程序Class.forName('com.mysql.jdbc.Driver');Connection conn =DriverManager.getConnection('jdbc:mysql://localhost:3306/te st', 'root', 'password');// 连接数据库conn.setAutoCommit(false);// 操作数据库PreparedStatement stmt = conn.prepareStatement('SELECT * FROM user');ResultSet rs = stmt.executeQuery();// 创建数据库操作对象DatabaseOperation bop = new DatabaseOperation('SELECT * FROM user');// 执行 SQL 语句bop.executeUpdate(stmt);// 关闭连接conn.close();```以上仅为一般流程,具体实现过程可能因应用场景不同而有所差异。
JDBC操作步骤以及MySQL数据库连接操作

本次预计讲解的知识点:1、JDBC分类,并使用JDBC连接Mysqle操作2、JDBC主要接口的使用没,并可以利用这些接口完成数据的操作3、事务处理4、批处理的使用JDBC简介(理解)JDBC(Java DataBase Connective)Java的数据库连接,JDBC本身提供的是一套与平台无关的数据库的操作标准。
所以在整个JDBC中充斥着大量的操作接口。
而且JDBC本身不是技术,而是一种服务。
由于JDBC 本身属于一个标准,所以一个数据库如果希望使用Java 进行程序开发的话,那么各个数据库的生产商必须实现这些标准——提供专门的数据库的操作包。
根据JDBC操作方式的不同,一共有以下三种常见形式:·JDBC-ODBC桥连接:利用微软的ODBC技术进行操作|- 操作过程:程序->JDBC--->ODBC--->数据库|- 此方式属于Java默认支持的方式,但是由于其中间加入了ODBC端,所以性能很差·JDBC连接:使用各个数据库生产商提供的数据库驱动程序|- 操作过程:程序--->JDBC---> 数据库|- 由于中间缺少了ODBC环节,所以性能将有着明显的提升·JDBC网络连接:通过网络协议进行数据库的连接操作一定要记住的是,虽然JDBC-ODBC方式不被使用,但是此种操作中由于是SUN默认支持的,所以JDBC的版本是最高的,但是如果使用的是纯粹的各个数据库生产商提供的驱动程序,那么肯定不会与最新的技术同步。
如果现在使用的是Eclipse的话,则需要在Build Path中配置此驱动程序的开发包。
此时配置完成驱动程序之后,就可以通过以下的接口和类进行JDBC操作了:·类:DriverManager·接口:Connection、PreparedStatement、Statement、ResultSet1.1、JDBC操作步骤JDBC本身是一个标准,所以其操作步骤是固定的,以后只需要修改很少一部分代码就可以达到不同数据库间的连接转换功能。
jdbc的六个步骤

jdbc的六个步骤
JDBC(Java Database Connectivity)是一种用于连接和操作数据库的 Java API。
它提供了一组标准的接口和类,使得 Java 程序能够与各种不同类型的数据库进行交互。
使用 JDBC 进行数据库操作通常包括以下六个步骤:
1. 加载和注册 JDBC 驱动程序:在使用 JDBC 之前,需要先加载并注册相应数据库的驱动程序。
这可以通过在代码中使用 Class.forName()方法来实现,传递数据库驱动程序的类名作为参数。
2. 创建数据库连接:使用 DriverManager 类的 getConnection()方法来创建与数据库的连接。
需要提供数据库的 URL、用户名和密码等连接信息。
3. 创建 Statement 对象:通过连接对象创建 Statement 对象,用于执行 SQL 语句。
4. 执行 SQL 语句:使用 Statement 对象的 executeQuery()或 executeUpdate()方法来执行 SQL 查询或更新操作。
5. 处理结果:如果执行的是查询操作,可以使用 ResultSet 对象来获取查询结果。
通过循环遍历 ResultSet 对象,可以获取每一行的数据。
6. 关闭资源:在完成数据库操作后,需要关闭连接、 Statement 和 ResultSet 对象,释放相关资源。
这六个步骤是使用 JDBC 进行数据库操作的基本流程。
需要根据具体的数据库类型和需求,适当地调整代码和参数。
《Java》实验指导13-JDBC数据库编程(Access版)

实验项目十三JDBC数据库编程一、实验目的及要求1、掌握创建ODBC数据源2、掌握创建一个Student表3、运用Type1(JDBC-ODBC桥)连接、访问数据库4、实现数据库的增删改查操作二、实验内容和要求1、在D盘建立sql文件夹,进入该文件夹建立名为stu.mdb的数据库,打开,设计表结构如下(参照P178表10-6),存盘,定表名为Students:打开表,可以添加2条记录如下:2、创建ODBC数据源开始-设置-控制面板-管理工具-数据源,选择“系统DSN”-“添加”,选第2项“Driver do Microsoft Access(*.Mdb)”(如下图):配置系统DNS(数据源):StudentSystem按照以下图例进行设置:数据源名,填StudentSystem,按“选择”,选d:\sql目录下的stu.mdb:再按“高级”按钮,登录名填sa,密码填sql,按“确定”。
记住数据源的名字System,表的名字Students,登录名sa,密码sql,编程会用到。
注意配置环境变量,Dos下加上 set path=C:\Program Files\Java\jdk1.6.0_20\bin3、运用Type1(JDBC-ODBC桥)连接、访问数据库//P179,操作1 创建一个类Student,与上面的表Student是对接:class Student{String No; //学号String Name; //姓名int Age; //年龄String Sex; //性别String Address; //住址String Email; //电子邮件String Phone; //联系电话//创建学生对象,封装数据//编写Student构造函数如下public Student(String No,String Name,int Age,String Sex,String Address,String Email,String Phone){this.No=No;=Name;this.Age=Age;this.Sex=Sex;this.Address=Address;this.Email=Email;this.Phone=Phone;}}编译情况如下:●运行结果●算法分析//P179,操作2 连接数据库:import java.sql.*; //导入包public class StudentSystem{Connection conn; //数据库连接对象Statement stm; //执行简单的SQL语句PreparedStatement pstm;//执行带有参数的SQL语句ResultSet rs; //保存查询结果StudentSystem()throws Exception{//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库conn=DriverManager.getConnection("jdbc:odbc:StudentSystem","sa","sql"); }//操作3 :显示数据表的内容://查询并显示所有学生信息void selectAll()throws SQLException{stm=conn.createStatement();//创建Statement对象rs=stm.executeQuery("select * from Students");//执行SQL语句//判断是否有查询结果并显示while(rs.next()){printAll();System.out.println("------------------------------");}closeAll();//关闭Statement对象和ResultSet结果集//操作4 增:插入一条记录到数据表中://插入学生信息void insertStudent(Student s)throws SQLException{//创建带有参数的preparedStatement对象pstm=conn.prepareStatement("insert into Students values(?,?,?,?,?,?,?)"); //为参数赋值setValue(s);//执行SQL语句pstm.executeUpdate();//关闭preparedStatement对象pstm.close();}//操作5 删:删除满足条件的记录://删除指定学号的学生void deleteNo(String No)throws SQLException{pstm=conn.prepareStatement("delete from Students where StudentNo=?"); pstm.setString(1,No);pstm.executeUpdate();}//操作6 改:修改数据表的内容://修改指定学号的学生信息/* void updateStudent(Student s)throws SQLException{pstm=conn.prepareStatement("update Students setStudentNo=?,Name=?,Age=?,Sex=?,Address=?,Email=?,Phone=? where StudentNo=?"); setValue(s);pstm.setString(8,s.No);pstm.executeUpdate();pstm.close();}*///操作7 查:查找满足条件的记录://按照指定的学号查找特定学生信息void selectNo(String No)throws SQLException{stm=conn.createStatement();rs=stm.executeQuery("select * from Students where StudentNo='"+No+"'"); if(rs.next()){printAll();}closeAll();//操作8 综合处理://用来显示数据库中的数据private void printAll()throws SQLException{System.out.println("学号:"+rs.getString(1));System.out.println("姓名:"+rs.getString(2));System.out.println("年龄:"+rs.getInt(3));System.out.println("性别:"+rs.getString(4));System.out.println("地址:"+rs.getString(5));System.out.println("Email:"+rs.getString(6));System.out.println("电话:"+rs.getString(7));}//用来为参数设定值private void setValue(Student s)throws SQLException{pstm.setString(1,s.No); //pstm.setString("StudentNo",s.No);pstm.setString(2,); //pstm.setString("Name",);pstm.setInt(3,s.Age); //pstm.setInt("Age",s.Age);pstm.setString(4,s.Sex); //pstm.setString("Sex",s.Sex);pstm.setString(5,s.Address);//pstm.setString("Address",s.Address); pstm.setString(6,s.Email); //pstm.setString("Email",s.Email);pstm.setString(7,s.Phone); //pstm.setString("Phone",s.Phone);}//关闭结果集和Statement对象private void closeAll()throws SQLException{rs.close();stm.close();}//关闭连接void closeConn()throws SQLException{conn.close();}}将上述代码存入d:\j文件夹,名为StudentSystem.java,编译情况如下:●运行结果●算法分析4、实现数据库的增删改查操作//p181,主控程序class MainStudent{public static void main(String args[])throws Exception{//创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象Student s1=new Student("20053051103","李三",22,"男","河北","168755955@","12345908945");Student s2=new Student("20053051105","王五",21,"男","湖北","wangwu@","12345908846");Student s3=new Student("20053051106","刘萍",22,"女","江西","zsan@","12345908965");Student s4=new Student("20053051107","黄志彬",21,"男","湖北","huang@","12345778849");//将学生信息写入数据库ss.insertStudent(s1);ss.insertStudent(s2);ss.insertStudent(s3);ss.insertStudent(s4);//查找指定学号学生//ss.selectNo("20053051101");//修改学生信息//ss.updateStudent(s);//删除指定学号学生信息//ss.deleteNo("20053051102");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}增加4条记录并显示:查找学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//查找指定学号学生ss.selectNo("20053051106");ss.closeConn();}}删除学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//删除指定学号学生信息ss.deleteNo("20053051106");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}观察,学号为"20053051106" 的学生即“刘萍”被删除了。
简要说明jdbc连接数据库的步骤
简要说明jdbc连接数据库的步骤一、引入JDBC驱动在使用JDBC连接数据库之前,首先需要引入相应的JDBC驱动。
不同的数据库有不同的驱动,需要根据实际情况选择合适的驱动。
通常情况下,驱动的jar包会提供给开发者使用,需要将其导入到项目中。
二、加载驱动类在使用JDBC连接数据库之前,需要先加载驱动类。
加载驱动类可以通过Class.forName()方法实现,该方法接收一个参数,即驱动类的全限定名。
例如,对于MySQL数据库,加载驱动类的代码如下所示:Class.forName("com.mysql.jdbc.Driver");三、建立数据库连接在加载驱动类之后,可以通过DriverManager的getConnection()方法建立与数据库的连接。
getConnection()方法接收三个参数,分别是数据库的URL、用户名和密码。
其中,URL是连接数据库的地址,用户名和密码用于认证身份。
例如,连接MySQL数据库的代码如下所示:String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "123456";Connection connection = DriverManager.getConnection(url, username, password);四、创建Statement对象在建立与数据库的连接之后,需要创建一个Statement对象,用于执行SQL语句。
Statement对象可以通过Connection的createStatement()方法创建。
例如,创建Statement对象的代码如下所示:Statement statement = connection.createStatement();五、执行SQL语句在创建Statement对象之后,可以通过Statement对象的executeQuery()方法执行SQL查询语句,或者通过executeUpdate()方法执行SQL更新语句。
jdbc增删改查实验报告
JDBC增删改查实验报告一、引言数据库是现代软件开发中不可或缺的一部分,而对数据库的操作也是开发中最常见的任务之一。
JDBC(Java Database Connectivity)是Java语言中用于与数据库进行交互的API。
本实验将通过使用JDBC进行增删改查操作,探索JDBC在数据库操作中的应用。
二、实验目的通过本实验,我们将达到以下目的: 1. 理解JDBC的基本概念和原理; 2. 掌握使用JDBC进行数据库连接和操作的方法; 3. 熟悉JDBC在增删改查中的应用; 4. 实践使用JDBC进行数据库操作。
三、实验环境本实验使用以下环境: - 操作系统:Windows 10 - JDK版本:Java 8 - 数据库:MySQL 8.0 - IDE:Eclipse四、实验步骤4.1 数据库准备在MySQL数据库中创建一个名为”test_db”的数据库,并创建一个名为”users”的表,表结构如下:CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,email VARCHAR(50));4.2 配置JDBC连接在Java项目中引入JDBC依赖,例如使用Maven管理依赖的项目,在pom.xml文件中添加以下代码:<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency></dependencies>4.3 连接数据库在Java代码中使用JDBC连接数据库,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库String url = "jdbc:mysql://localhost:3306/test_db";String username = "root";String password = "123456";try {Connection connection = DriverManager.getConnection(url, username, password);// 连接成功,进行后续操作// ...} catch (SQLException e) {e.printStackTrace();}}}4.4 插入数据使用JDBC向数据库中插入数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 插入数据String insertSql = "INSERT INTO users (name, age, email) VALUES (?, , )";PreparedStatement statement = connection.prepareStatement(insertSq l);statement.setString(1, "张三");statement.setInt(2, 20);statement.setString(3,"********************");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("插入成功");} else {System.out.println("插入失败");}} catch (SQLException e) {e.printStackTrace();}}}4.5 查询数据使用JDBC从数据库中查询数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 查询数据String selectSql = "SELECT * FROM users";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(selectSql);while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");int age = resultSet.getInt("age");String email = resultSet.getString("email");System.out.println("id: " + id + ", name: " + name + ", age: " + age + ", email: " + email);}} catch (SQLException e) {e.printStackTrace();}}}4.6 更新数据使用JDBC更新数据库中的数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 更新数据String updateSql = "UPDATE users SET age = ? WHERE name = ?";PreparedStatement statement = connection.prepareStatement(updateSq l);statement.setInt(1, 25);statement.setString(2, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("更新成功");} else {System.out.println("更新失败");}} catch (SQLException e) {e.printStackTrace();}}}4.7 删除数据使用JDBC从数据库中删除数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 删除数据String deleteSql = "DELETE FROM users WHERE name = ?";PreparedStatement statement = connection.prepareStatement(deleteSq l);statement.setString(1, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("删除成功");} else {System.out.println("删除失败");}} catch (SQLException e) {e.printStackTrace();}}}五、实验总结通过本次实验,我们成功地使用JDBC进行了增删改查操作。
jdbc使用步骤
jdbc使用步骤JDBC使用步骤JDBC(Java Database Connectivity)是Java程序连接数据库的一种标准接口。
通过JDBC,我们可以在Java程序中访问和操作各种数据库。
下面将介绍使用JDBC连接数据库的步骤。
1. 导入JDBC相关的包在Java程序中使用JDBC,首先需要导入JDBC相关的包。
通常使用的包包括java.sql和javax.sql。
可以使用import语句导入这些包,以便在代码中使用JDBC提供的类和接口。
2. 加载数据库驱动程序在使用JDBC之前,需要先加载数据库驱动程序。
驱动程序是一个Java类,用于与特定的数据库进行通信。
不同的数据库有不同的驱动程序,需要根据使用的数据库选择相应的驱动程序。
可以使用Class类的forName()方法来动态加载驱动程序。
3. 建立数据库连接在加载了数据库驱动程序之后,就可以建立与数据库的连接了。
首先需要创建一个Connection对象,该对象表示与数据库的物理连接。
可以使用DriverManager类的getConnection()方法来建立数据库连接。
该方法接收数据库的URL、用户名和密码等参数,返回一个代表数据库连接的Connection对象。
4. 创建Statement对象在建立了数据库连接之后,就可以创建Statement对象了。
Statement对象用于向数据库发送SQL语句并接收执行结果。
可以通过Connection对象的createStatement()方法来创建Statement对象。
5. 执行SQL语句通过Statement对象可以执行SQL语句。
可以使用Statement对象的executeUpdate()方法执行更新操作(如插入、删除、修改),该方法返回一个整数,表示受影响的行数。
可以使用Statement对象的executeQuery()方法执行查询操作,该方法返回一个ResultSet对象,表示查询结果集。
简述jdbc访问数据库的一般流程
简述jdbc访问数据库的一般流程JDBC是Java中用于访问数据库的标准接口。
它可以让Java程序通过与数据库建立连接,执行SQL语句,并处理查询结果等操作。
一般情况下,JDBC访问数据库的流程如下:1. 加载数据库驱动首先,需要加载数据库的驱动程序。
不同的数据库有不同的驱动程序,例如MySQL的驱动程序是com.mysql.jdbc.Driver,Oracle的驱动程序是oracle.jdbc.driver.OracleDriver。
可以通过Class.forName方法或者DriverManager.registerDriver 方法来加载驱动程序。
2. 建立连接加载驱动程序之后,需要建立与数据库的连接。
可以使用DriverManager.getConnection方法来建立连接,需要传入数据库的URL、用户名和密码等信息。
连接成功后,就可以在Java程序中操作数据库了。
3. 执行SQL语句建立连接之后,可以使用Connection对象的createStatement方法或prepareStatement方法来创建一个Statement对象或PreparedStatement对象。
然后,可以使用这些对象执行SQL语句,例如查询、插入、更新或删除数据等操作。
4. 处理查询结果如果执行的SQL语句是查询操作,那么需要通过ResultSet对象来处理查询结果。
可以使用Statement对象或PreparedStatement对象的executeQuery方法来执行查询操作,然后使用ResultSet对象的getXXX方法来获取查询结果。
5. 关闭连接操作数据库完毕之后,需要关闭与数据库的连接,以释放相关资源。
可以使用Connection对象的close方法来关闭连接。
JDBC访问数据库的流程需要注意一些问题,例如SQL注入、事务处理、连接池等,这些问题都需要开发人员进行认真的考虑和处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验项目四 Java SE 高级编程第1部分 JDBC数据库操作[实验目的]1、掌握JDBC API中各个类及接口的用法。
2、能够灵活使用JDBC API中各个类及接口编写数据库增、查、改、删应用程序。
[实验要求]1、复习理论教学中所学的内容。
2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。
3、认真总结实验并书写实验报告。
[实验课时] 2学时[实验教学方式] 学生上机实验,教师随堂指导。
[实验内容]实验1 抽取样本//请按模板要求,将【代码】替换为Java程序代码。
/*请使用shop数据库,配置数据源**///RandomGetRecord.javaimport java.sql.*;import java.util.*;public class RandomGetRecord {public static void main(String args[]) {int wantRecordAmount = 10; //随机抽取的记录数目Random random =new Random();try{ 【代码1】//加载JDBC-ODBC桥接器}catch(ClassNotFoundException e) {System.out.print(e);}Connection con;Statement sql;ResultSet rs;try {String uri="jdbc:odbc:dataSource";String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs =【代码2】//sql调用.executeQuery方法查询goods表中的全部记录st(); //将rs的游标移到rs的最后一行int count=rs.getRow();Vector<Integer> vector=new Vector<Integer>();for(int i=1;i<=count;i++) {vector.add(new Integer(i));}int itemAmount=Math.min(wantRecordAmount,count);System.out.println("随机抽取"+itemAmount+"条记录.");double sum =0, n = itemAmount;while(itemAmount>0) {int randomIndex = random.nextInt(vector.size());int index=(vector.elementAt(randomIndex)).intValue();【代码3】//将rs的游标游标移到indexString number = rs.getString(1);String name = rs.getString(2);java.util.Date date=rs.getDate(3);double price=rs.getDouble(4);sum = sum+price;itemAmount--;vector.removeElementAt(randomIndex);}con.close();double aver = sum/n;System.out.println("均价:"+aver+"元");}catch(SQLException e) {System.out.println(""+e);}}}实验2 用户转账//请按模板要求,将【代码】替换为Java程序代码。
//TurnMoney.java/*请先新建名为bank的数据库,其中建两个表,分别为card1,card2,这两个表的字段分别为number(文本类型) name (文本类型) amount(数字类型),并给两张表一些初始记录值。
再配置数据源。
**/import java.sql.*;public class TurnMoney {public static void main(String args[]){Connection con = null;Statement sql;ResultSet rs;try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println(""+e);}try{ double n = 100;con = DriverManager.getConnection("jdbc:odbc:tom","","");【代码1】关闭自动提交模式sql = con.createStatement();rs = sql.executeQuery("SELECT * FROM card1 WHERE number='zhangsan'");rs.next();double amountOne = rs.getDouble("amount");System.out.println("转账操作之前zhangsan的钱款数额:"+amountOne);rs = sql.executeQuery("SELECT * FROM card2 WHERE number='xidanShop'");rs.next();double amountTwo = rs.getDouble("amount");System.out.println("转账操作之前xidanShop的钱款数额:"+amountTwo);amountOne = amountOne-n;amountTwo = amountTwo+n;sql.executeUpdate("UPDA TE card1 SET amount ="+amountOne+" WHERE number ='zhangsan'");sql.executeUpdate("UPDA TE card2 SET amount ="+amountTwo+" WHERE number ='xidanShop'");mit(); //开始事务处理,如果发生异常直接执行catch块【代码2】恢复自动提交模式rs = sql.executeQuery("SELECT * FROM card1 WHERE number='zhangsan'");rs.next();amountOne = rs.getDouble("amount");System.out.println("转账操作之后zhangsan的钱款数额:"+amountOne);rs = sql.executeQuery("SELECT * FROM card2 WHERE number='xidanShop'");rs.next();amountTwo = rs.getDouble("amount");System.out.println("转账操作之后xidanShop的钱款数额:"+amountTwo);con.close();}catch(SQLException e){try{ 【代码3】撤消事务所做的操作}catch(SQLException exp){}System.out.println(e.toString());}}}实验3 用表格显示数据库中的记录/*请使用shop数据库,配置数据源**/// Queryimport java.sql.*;public class Query {String datasourceName=""; //数据源名String tableName=""; //表名Object a[][];public Query() {try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e) {System.out.print(e);}}public void setDatasourceName(String s) {datasourceName=s.trim();}public void setTableName(String s) {tableName=s.trim();}public Object[][] getRecord() {Connection con;PreparedStatement sql;ResultSet rs;try {String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);DatabaseMetaData metadata=___________________________;//获取DatabaseMetaData 对象metadataResultSet rs1=___________________________;// metadata调用getColumes方法得到rs1int 字段个数=0;while(rs1.next()) {字段个数++;}int n=getAmount();a = new Object[n][字段个数];sql=con.prepareStatement("select * From "+tableName);rs=sql.executeQuery();int m=0;while(rs.next()) {for(int k=1;k<=字段个数;k++) {a[m][k-1] = rs.getString(k);}m++;}con.close();}catch(SQLException e) {System.out.println("请输入正确的表名"+e);}return a;}public int getAmount(){Connection con;Statement sql;ResultSet rs;try {String uri="jdbc:odbc:"+datasourceName;String id="";String password="";con=DriverManager.getConnection(uri,id,password);sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONL Y);rs=sql.executeQuery("SELECT * FROM "+tableName);st();int rows = rs.getRow();return rows;}catch(SQLException exp){System.out.println(""+exp);return 0;}}}//MainClassimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class Example11_14 {public static void main(String args[]) {JTable table;Query query; //负责查询数据库query = new Query();query.setDatasourceName("myData");query.setTableName("goods");Object a[][]=________________________;//query调用getRecord方法给a[][]赋值int m=a[0].length;String b[]=new String[m];for(int i=0;i<m;i++)b[i]="字段"+(i+1);table=______________________;//创建表格对象JFrame frame=new JFrame();frame.add( _____________________);//将表格添加在JScrollPane中frame.setVisible(true);frame.setBounds(20,20,300,400);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}。