JDBC数据库编程(java实训报告)

一、实验要求:

1、掌握数据库访问技术。
2、掌握JDBC连接数据库的方法。
3、掌握JDBC基本操作、包括查找、修改、删除、增加等。

二、实验环境:

1、硬件设备要求:PC及其联网环境;
2、软件设备要求:Windows操作系统;Sqlserver数据库管理系统;Eclipse集成开发工具。

三、实验内容:

编写程序实现对图书信息表的增删改查操作。
需求分析:现有图书信息表bookinfo(序号,图书编号,图书名称,作者,出版社,单价,出版日期,ISBN,库存数量)。写程序实现对该表的增删改查操作。

1、建立数据库连接

package bao_1;

import java.sql.*;

public class JdbcConnection {
	private static Connection conn = null;

	public static Connection dbConnection() {
		try {
			// 连接驱动程序
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

		} catch (Exception e) {
			e.printStackTrace();
		}

		try {
			//访问sqlserver的url
			String url = "jdbc:sqlserver://localhost:1433;databbaseName=MyDatabase";
			String user="sa";
			String password="123";
			//获得数据连接
			conn = DriverManager.getConnection(url, user, password);
			System.out.println("数据库连接成功\n\n\n");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return conn;
	}

}

2、查询数据

package bao_1;

import java.sql.*;

public class QueryExam {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			//获得连接对象
			Connection conn=new JdbcConnection().dbConnection();
			//创建语句对象
			
			Statement sql=conn.createStatement();
			//执行数据库查询操作,返回一个Resultset 结果集
			ResultSet rs=sql.executeQuery("select *from MyDatabase..student");
			System.out.println("\t\t显示数据的所有信息:\n");
			//循环获得所有数据
			while(rs.next()) {
				int index =rs.getInt(1);//获取表中第1列序号信息
				String name=rs.getString(2);//......第二列图书名称
				float price=rs.getFloat(3);//.......第三列图书价格
				int number =rs.getInt(4);  //........第四列图书数量
				String author=rs.getString(5);//......第五列图书作者
				System.out.print("  序号:"+index);
				System.out.print("  名称:"+name);
				System.out.print("  价格:"+price);
				System.out.print("  数量:"+number);
				System.out.print("  作者:"+author);
				System.out.println("\n");
			
				}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

2.1 测试结果

在这里插入图片描述

3、添加数据

package bao_1;

import java.sql.*;

public class InsertExam {

	public static void main(String[] args) {

		try {
			Connection conn=new JdbcConnection().dbConnection();
			Statement sql=conn.createStatement();
			//定义插入数据的SQL语句
			String inserStr="insert into MyDatabase..student values(5,'程序设计',38,24,'小黑')";
			sql.executeUpdate(inserStr);//调用executeUpdate()方法,更新数据
			ResultSet rs=sql.executeQuery("select *from MyDatabase..student");
			System.out.println("\t\t插入数据:\n\n");
			while (rs.next()) {
				int index = rs.getInt(1);// 获取表中第1列序号信息
				String name = rs.getString(2);// ......第二列图书名称
				float price = rs.getFloat(3);// .......第三列图书价格
				int number = rs.getInt(4); // ........第四列图书数量
				String author = rs.getString(5);// ......第五列图书作者
				System.out.print("  序号:"+index);
				System.out.print("  名称:" + name);
				System.out.print("  价格:" + price);
				System.out.print("  数量:" + number);
				System.out.print("  作者:" + author);
				System.out.println("\n");
			}
			} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

3.1、测试结果

在这里插入图片描述

4、删除数据

package bao_1;

import java.sql.*;

public class DeleteExample {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Connection conn = new JdbcConnection().dbConnection();
			Statement sql = conn.createStatement();
			// 删除数据的SQL语句
			String deleteStr = "delete from MyDatabase..student where id=2";
			sql.executeUpdate(deleteStr);// 更新数据表
			ResultSet rs = sql.executeQuery("select * from MyDatabase..student ");
              System.out.println("\t\t删除数据:\n");
			while (rs.next()) {
				int index = rs.getInt(1);// 获取表中第1列序号信息
				String name = rs.getString(2);// ......第二列图书名称
				float price = rs.getFloat(3);// .......第三列图书价格
				int number = rs.getInt(4); // ........第四列图书数量
				String author = rs.getString(5);// ......第五列图书作者
				System.out.print("  序号:"+index);
				System.out.print("  名称:" + name);
				System.out.print("  价格:" + price);
				System.out.print("  数量:" + number);
				System.out.print("  作者:" + author);
				System.out.println("\n");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

4.1、测试结果

在这里插入图片描述

5、修改数据

package bao_1;

import java.sql.*;

public class UpdateExam {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Connection conn = new JdbcConnection().dbConnection();
			Statement sql = conn.createStatement();
			// 更新数据的sql
			String updateStr = "Update MyDatabase..student set author='李刚' where id=3";
			sql.executeUpdate(updateStr);
			ResultSet rs = sql.executeQuery("select * from MyDatabase..student");
			System.out.println("\t\t更改数据信息:\n");
			while (rs.next()) {
				int index = rs.getInt(1);// 获取表中第1列序号信息
				String name = rs.getString(2);// ......第二列图书名称
				float price = rs.getFloat(3);// .......第三列图书价格
				int number = rs.getInt(4); // ........第四列图书数量
				String author = rs.getString(5);// ......第五列图书作者
				System.out.print("  序号:"+index);
				System.out.print("  名称:"+name);
				System.out.print("  价格:"+price);
				System.out.print("  数量:"+number);
				System.out.print("  作者:"+author);
				System.out.println("\n");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

5.1 测试结果

在这里插入图片描述

四、总结

实验总结:通过本次实验,我基本掌握了java和数据库的连接,通过在java中编写程序直接对数据库里边的数据进行一系列的操作。在进行java和数据库连接中遇到的问题是下载的驱动程序要怎样加入到java项目中,在数据库建立表的过程中,防火墙的设置始终不能成功,导致数据库中编写时不能正常的运行。经过多次的尝试才能运行。从数据库中本地编写代码实现数据的增删改查较为容易。Java和数据库建立连接成功是第一步,这个连接不成功则没办法继续进行。成功连接后需要编写对数据库增删改查的相关代码。过程虽然很艰辛,遇到了很多的问题,通过查询相关的知识点将问题解决。自己对知识的掌握有了进一步的提高。
在这里插入图片描述

posted on 2022-08-28 22:17  热爱技术的小郑  阅读(287)  评论(0编辑  收藏  举报