数据库实验4.docx
- 文档编号:15609615
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:33
- 大小:88.07KB
数据库实验4.docx
《数据库实验4.docx》由会员分享,可在线阅读,更多相关《数据库实验4.docx(33页珍藏版)》请在冰点文库上搜索。
数据库实验4
实验4ODBC编程
课程:
数据库系统概论
专业:
计算机科学与技术专业
学号:
1245713131
姓名:
2014年12月20日星期六
1.实验目的与要求
(1)了解C/S结构的应用系统设计与实现的全过程。
(2)学会开发工具与数据库互连的方法。
(3)能使用开发工具操纵数据库。
2.实验环境要求
(1)服务器端SQLServer2005
(2)客户端VC6.0
(3)服务器端与客户端网络互连
3.实验内容
建立“图书销售管理系统”。
(1)创建与维护数据库
在SQLServer2005中创建图书销售数据库(library),建立所有的表、设置约束,并准备好部分数据(注意:
各表中的数据必须符合约束规则)。
(2)开发客户端数据库应用程序
1)划分应用程序的功能模块
图书销售管理系统可以由五个模块组成,各模块的功能如下:
a)图书销售
图书零售一般顾客零售和会员零售
图书退货
b)图书管理
新书编目为新进的图书编目
图书的查找与管理查找(可实现按ISBN、书名、出版社查找)
图书修改
图书进货
图书退货
出版社管理
c)会员管理
会员添加添加新的会员,同时登记会员的基本信息、有效期等等。
会员查找提供会员编号、身份证号、会员姓名等方式复合查询。
会员删除删除已存在的会员。
会员信息修改对会员的基本资料进行修改。
d)用户管理
用户添加添加新的用户,同时设置用户的密码、权限等。
用户查找提供用户名、用户权限等方式复合查询。
用户删除删除已存在的会员。
用户信息修改对用户的权限修改、初始化用户密码。
d)数据管理
数据备份
数据恢复
要求:
列出各子功能模块所涉及到的表,并说明对表所做的操作。
2)应用程序的实现
各功能模块均由函数实现,在主函数中,建立一个主菜单列表,由用户选择要实现的功能,调用相应的功能函数。
主函数如下:
intmain()
{intk;
while
(1)
{cout<<'\n';
cout<<'\n';
cout<<"*****************************"<<'\n';
cout<<"1.图书销售"<<'\n';
cout<<"2.图书管理"<<'\n';
cout<<"3.会员管理"<<'\n';
cout<<"4.用户管理"<<'\n';
cout<<"5.数据管理"<<'\n';
cout<<"6.退出"<<'\n';
cout<<"*****************************"<<'\n';
cout<<"请选择1~6:
"<<'\n';
cin>>k;
if(k==6)break;
switch(t){
case1:
librarysale();//调用图书销售函数
break;
case2:
librarymanage();//调用图书管理函数
break;
case3:
membermanage();//调用会员管理函数
break;
case4:
usermanage();//调用用户管理函数
break;
case5:
datamanage();//调用数据管理函数
break;
default:
break;
}
}
return0;
}
实现要求:
1)每位同学至少要完成librarysale()、librarymanage()、membermanage()和usermanage()四个功能模块函数中的一个的编写;
2)在各功能模块中,自行设计子菜单,按不同要求完成对数据库中的数据操作:
显示、查找、删除、修改等;
3)与数据库的连接和断开单独用函数实现。
具体代码:
IUserDao接口:
packagecom.librarymanage.dao;
importjava.util.List;
importcom.librarymanage.entity.User;
publicinterfaceIUserDao{
publicbooleandoCreate(Useruser)throwsException;
publicbooleandoUpdate(Useruser)throwsException;
publicbooleandoDelete(StringuserId)throwsException;
publicUserfindById(Stringid)throwsException;
publicList
}
IUserDaoImpl类:
packagecom.librarymanage.dao;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
importcom.librarymanage.entity.User;
importcom.librarymanage.jdbc.DataBaseConnection;
publicclassIUserDaoImplimplementsIUserDao{
privateDataBaseConnectionjdbc=null;
privateConnectioncon=null;
privatePreparedStatementpstmt=null;
privateResultSetrs=null;
publicIUserDaoImpl(){
this.jdbc=newDataBaseConnection();
this.con=this.jdbc.getConnection();
}
@Override
publicbooleandoCreate(Useruser)throwsException{
//TODOAuto-generatedmethodstub
booleanflag=false;
try{
Stringsql="INSERTINTOuser(userId,userName,userPower,suserId)VALUES(?
?
?
?
)";
pstmt=this.con.prepareStatement(sql);
pstmt.setString(1,user.getUserId());
pstmt.setString(2,user.getUserName());
pstmt.setString(3,user.getUserPower());
pstmt.setString(4,user.getSuserId());
if(pstmt.executeUpdate()>0){
flag=true;
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
throwe;
}finally{
this.jdbc.closeAll(con,pstmt,rs);
}
returnflag;
}
@Override
publicbooleandoUpdate(Useruser)throwsException{
//TODOAuto-generatedmethodstub
booleanflag=false;
Stringsql="UPDATEuserSETuserName=?
userPower=?
suserId=?
WHEREuserId=?
";
try{
pstmt=this.con.prepareStatement(sql);
pstmt.setString(1,user.getUserName());
pstmt.setString(2,user.getUserPower());
pstmt.setString(3,user.getSuserId());
pstmt.setString(4,user.getUserId());
if(pstmt.executeUpdate()>0){
flag=true;
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
throwe;
}finally{
this.jdbc.closeAll(con,pstmt,rs);
}
returnflag;
}
@Override
publicbooleandoDelete(StringuserId)throwsException{
//TODOAuto-generatedmethodstub
booleanflag=false;
Stringsql="DELETEFROMuserWHEREuserId=?
";
try{
pstmt=this.con.prepareStatement(sql);
pstmt.setString(1,userId);
if(pstmt.executeUpdate()>0){
flag=true;
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
throwe;
}finally{
this.jdbc.closeAll(con,pstmt,rs);
}
returnflag;
}
@Override
publicUserfindById(StringuserId)throwsException{
//TODOAuto-generatedmethodstub
Useruser=null;
Stringsql="SELECTuserId,userName,userPower,suserIdFROMuserWHEREuserIdlike?
";
try{
pstmt=this.con.prepareStatement(sql);
pstmt.setString(1,userId);
rs=pstmt.executeQuery();
if(rs.next()){
user=newUser();
user.setUserId(rs.getString
(1));
user.setUserName(rs.getString
(2));
user.setUserPower(rs.getString(3));
user.setSuserId(rs.getString(4));
}
}catch(Exceptione){
throwe;
}finally{
this.jdbc.closeAll(con,pstmt,rs);
}
returnuser;
}
@Override
publicList
//TODOAuto-generatedmethodstub
List
Stringsql="SELECTuserId,userName,userPower,suserIdFROMuser";
try{
pstmt=this.con.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
Useruser=newUser();
user.setUserId(rs.getString
(1));
user.setUserName(rs.getString
(2));
user.setUserPower(rs.getString(3));
user.setSuserId(rs.getString(4));
all.add(user);
}
}catch(Exceptione){
throwe;
}finally{
this.jdbc.closeAll(con,pstmt,rs);
}
returnall;
}
}
User类:
packagecom.librarymanage.entity;
publicclassUser{
privateStringuserId;
privateStringuserName;
privateStringuserPower;
privateStringsuserId;
publicStringgetUserId(){
returnuserId;
}
publicvoidsetUserId(StringuserId){
this.userId=userId;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetUserPower(){
returnuserPower;
}
publicvoidsetUserPower(StringuserPower){
this.userPower=userPower;
}
publicStringgetSuserId(){
returnsuserId;
}
publicvoidsetSuserId(StringsuserId){
this.suserId=suserId;
}
}
DataBaseConnection类:
packagecom.librarymanage.jdbc;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ResourceBundle;
publicclassDataBaseConnection{
privateConnectioncon;
//获取连接的方法
publicDataBaseConnection(){
//读取数据库配置文件
ResourceBundlebundle=ResourceBundle.getBundle("ConnDB");
StringmyDriver=bundle.getString("driver");
Stringurl=bundle.getString("url");
Stringusername=bundle.getString("username");
Stringpwd=bundle.getString("pwd");
try{
//加载驱动
Class.forName(myDriver);
//获取链接
con=DriverManager.getConnection(url,username,pwd);
//System.out.println("成功!
");
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
System.out.println("失败1");
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
System.out.println("失败2");
e.printStackTrace();
}
}
publicConnectiongetConnection(){
returnthis.con;
}
/**
*关闭连接
*
*@paramcon
*连接
*@parampstmt
*处理器
*@paramrs
*结果集
*/
publicvoidcloseAll(Connectioncon,Statementpstmt,java.sql.ResultSetrs){
try{
if(rs!
=null){
rs.close();
rs=null;
}
if(pstmt!
=null){
pstmt.close();
pstmt=null;
}
if(con!
=null){
con.close();
con=null;
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
UserOperate类:
packagecom.librarymanager.operate;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
importcom.librarymanage.dao.IUserDaoImpl;
importcom.librarymanage.entity.User;
publicclassUserOperate{
publicstaticvoidinsert(){
IUserDaoImpliUserDaoImpl=newIUserDaoImpl();
Scannerscanner=newScanner(System.in);
Useruser=newUser();
System.out.println("请输入userId:
");
user.setUserId(scanner.next());
System.out.println("请输入userName:
");
user.setUserName(scanner.next());
System.out.println("请输入userPower:
");
user.setUserPower(scanner.next());
System.out.println("请输入suserId:
");
user.setSuserId(scanner.next());
try{
iUserDaoImpl.doCreate(user);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidupdate(){
IUserDaoImpliUserDaoImpl=newIUserDaoImpl();
Scannerscanner=newScanner(System.in);
Useruser=null;
user=newUser();
System.out.println("请输入要修改用户的userId:
");
StringuserId=scanner.next();
try{
user=iUserDaoImpl.findById(userId);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(user!
=null){
IUserDaoImpliUserDaoImp2=newIUserDaoImpl();
System.out.println("请输入新userName:
");
user.setUserName(scanner.next());
System.out.println("请输入新userPower:
");
user.setUserPower(scanner.next());
System.out.println("请输入新suserId:
");
user.setSuserId(scanner.next());
try{
//System.out.println("userId:
"+user.getUserId()+'\t'+"userName:
"+user.getUserName()+'\t'+"userPower:
"+user.getUserPower()+'\t'+"suserId:
"+user.getSuserId());
iUserDaoImp2.doUpdate(user);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}else{
System.out.println(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验