文章目录
- 一、实验要求:
- 二、实验环境:
- 三、实验内容:
-
- 1、建立数据库连接
- 2、查询数据
-
- 2.1 测试结果
- 3、添加数据
-
- 3.1、测试结果
- 4、删除数据
-
- 4.1、测试结果
- 5、修改数据
-
- 5.1 测试结果
- 四、总结
一、实验要求:
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和数据库建立连接成功是第一步,这个连接不成功则没办法继续进行。成功连接后需要编写对数据库增删改查的相关代码。过程虽然很艰辛,遇到了很多的问题,通过查询相关的知识点将问题解决。自己对知识的掌握有了进一步的提高。