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和数据库建立连接成功是第一步,这个连接不成功则没办法继续进行。成功连接后需要编写对数据库增删改查的相关代码。过程虽然很艰辛,遇到了很多的问题,通过查询相关的知识点将问题解决。自己对知识的掌握有了进一步的提高。
JDBC数据库编程(java实训报告)的更多相关文章
- 2018 java实训总结(时间戳&&主键)
java实训题目:源管理系统. 答辩的时候被老师怼了以下几个的地方: 1.主键改变了 2.没时间戳却说自己的程序里有先后(这就是老师迂腐了,主键自增可以间接反馈出他加入的早晚,即使主键做出了改变但只是 ...
- Java实训:实训一 ——长春职业技术学院 16级网络工程
Java实训:实训一 本文会解释一些设计思路. 想看具体过程,请转:https://www.cnblogs.com/lxwlxw/p/10114187.html 笑维的码云项目命名不太对,所以我来:h ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- JDBC数据库编程:PreparedStatement接口
使用PreparedStatement进行数据库的更新及查询操作. PreparedStatement PreparedStatement是statement子接口.属于预处理. 使用statemen ...
- Java高级篇(三)——JDBC数据库编程
JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.本篇将介绍一下如何使用JDBC操作数据库(以MySQL为例). 一.JDBC JDBC制定了统一访问 ...
- Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
- JDBC数据库编程
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程 最基本的JDBC操作 本段内容主要完成JDBC的增删查改操作 packa ...
- JDBC数据库编程常用接口(转)
JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口(API),制定了统一的访问各种关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现.这东西能够 ...
- JDBC数据库编程:callableStatement接口
了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...
随机推荐
- 跳转语句break、continue、return
1.break 语句 概念: break语句在循环中的作用是终止当前循环,在switch语句中的作用是终止switch. 示例: 输出结果: 2.continue 语句 概念: continue语句 ...
- BTDetect用户协议和技术支持
1.巴蜀生物科技检测用户协议 2.基于机器学习的生物检测项目 3.BTDetect用户手册和技术支持
- 臭名远扬之 goto 语句
C 语言自学之 goto 语句 Dome1:以下程序实现从控制台输出1-10,使用goto语句,实现当输出完3之后跳出循环体. 1 #include <stdio.h> 2 3 int m ...
- Scrum五大会议要怎么开?
在Scrum框架中,我们对Scrum的五个会议一定都不陌生,但如何组织这五个会议,才能让Scrum团队真正积极.主动地参与进项目管理中呢?接下来我们会以一个Sprint为周期,详细介绍一下Sprint ...
- Django提交时报错
错误描述: RuntimeError at /saveBlog You called this URL via POST, but the URL doesn't end in a slash and ...
- 工具推荐-使用RedisInsight工具对Redis集群CURD操作及数据可视化和性能监控
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 快速 ...
- 微信公众号商城、小程序商城、H5商城 实例 前后端源码
CRMEB客户管理+电商营销系统 https://gitee.com/ZhongBangKeJi/CRMEB 演示站后台: http://demo.crmeb.net/admin 账号:demo 密 ...
- 一门能让你五分钟学会的语言-Brainfuck
看到标题,不出意外的话,你肯定开始骂我了:**标题党,什么编程语言五分钟就能学会? 其实我本来也是不相信的,但是学过了才知道这是真的. 1.Brainfuck 看到这个小标题,不要误会,我没有骂人. ...
- Kubernetes 监控--Prometheus 高可用: Thanos
前面我们已经学习了 Prometheus 的使用,了解了基本的 PromQL 语句以及结合 Grafana 来进行监控图表展示,通过 AlertManager 来进行报警,这些工具结合起来已经可以帮助 ...
- Elasticsearch 数据建模指南
文章转载自:https://mp.weixin.qq.com/s/vSh6w3eL_oQvU1mxnxsArA 0.题记 我在做 Elasticsearch 相关咨询和培训过程中,发现大家普遍更关注实 ...