数据库系统应用与开发实验五.docx
- 文档编号:12066456
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:20
- 大小:20KB
数据库系统应用与开发实验五.docx
《数据库系统应用与开发实验五.docx》由会员分享,可在线阅读,更多相关《数据库系统应用与开发实验五.docx(20页珍藏版)》请在冰豆网上搜索。
数据库系统应用与开发实验五
实验JDBC进阶
(1)
一、相关知识点
1、JDBC基本概念
2、JDBC数据增、删、改,事务控制等
3、OR映射
二、实验目的:
理解Java连接数据库的基本概念。
理解利用Statement对象、PreparedStatement对象进行增、删、改操作,理解事务的概念和JDBC编程方式。
理解OR映射的基本概念
三、实验内容:
1、对读者管理模块进行OR映射。
第一步:
将ReaderTypeDAO、ReaderDAO放入相应的包中,并完成补充完成其中的代码(要求进行纯粹的OR映射,不要涉及其他业务逻辑的判断);
第二步:
改造ReaderManager类,使得该类不直接使用JDBC,而通过调用上述两个DAO类实现相关业务逻辑。
第三步:
运行图书管理系统,进行各个功能的测试(读者类别管理、读者管理)
【实验结果与分析】
A、写出DAO类中各个方法的代码。
readerdao
publicList
List
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql;
if(readerTypeId<0)
sql="select*frombeanreaderwherereaderidlike'%"+readerid+"%'orreadernamelike'"+readerName+"'";
else
sql=sql="select*frombeanreaderwherereaderidlike'%"+readerid+"%'orreadernamelike'%"+readerName+"%'orreadertypeid='"+readerTypeId+"'";
java.sql.Statementst=conn.createStatement();
java.sql.ResultSetrs=st.executeQuery(sql);
while(rs.next()){
BeanReadera=newBeanReader();
a.setReaderid(rs.getString
(1));
a.setReaderName(rs.getString
(2));
a.setReaderTypeId(rs.getInt(3));
a.setLendBookLimitted(rs.getInt(4));
a.setCreateDate(rs.getDate(5));
a.setCreatorUserId(rs.getString(6));
a.setRemoveDate(rs.getDate(7));
a.setRemoverUserId(rs.getString(8));
a.setStopDate(rs.getDate(9));
a.setStopUserId(rs.getString(10));
result.add(a);
}
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
returnresult;
}
/**
*新增读者
*@paramr
*@throwsBaseException
*/
publicvoidcreateReader(BeanReaderr)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql;
sql="insertintobeanreadervalues('"+r.getReaderid()+"','"+r.getReaderName()+"')";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
/**
*修改读者信息
*@paramreader
*@throwsBaseException
*/
publicvoidmodifyReader(BeanReaderreader)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql="updatebeanreadersetreadername='"+reader.getReaderName()+"',readertypeid='"+reader.getReaderTypeId()+"',lendbooklimitted='"+reader.getLendBookLimitted()+"',createdate='"+reader.getCreateDate()+"',CreatorUserId='"+reader.getCreatorUserId()+"',RemoveDate='"+reader.getRemoveDate()+"',RemoverUserId='"+reader.getRemoverUserId()+"',StopDate='"+reader.getStopDate()+"',StopUserId='"+reader.getStopUserId()+"'";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
publicvoiddeleteReader(BeanReaderreader)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql="deletefromwherereaderid='"+reader.getReaderid()+"'";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
/**
*
*@paramreaderid
*@return
*@throwsDbException
*/
publicBeanReaderget(Stringreaderid)throwsDbException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql="select*frombeanreaderwherereaderid='"+readerid+"'";
java.sql.Statementst=conn.createStatement();
java.sql.ResultSetrs=st.executeQuery(sql);
if(rs.next()){
BeanReadera=newBeanReader();
a.setReaderid(rs.getString
(1));
a.setReaderName(rs.getString
(2));
a.setReaderTypeId(rs.getInt(3));
a.setLendBookLimitted(rs.getInt(4));
a.setCreateDate(rs.getDate(5));
a.setCreatorUserId(rs.getString(6));
a.setRemoveDate(rs.getDate(7));
a.setRemoverUserId(rs.getString(8));
a.setStopDate(rs.getDate(9));
a.setStopUserId(rs.getString(10));
returna;
}
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
returnnull;
}
}
Readertypedao
publicList
List
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql;
sql="select*frombeanreadertypewherereaderTypeNamelike'%"+readerTypeName+"%'";
java.sql.Statementst=conn.createStatement();
java.sql.ResultSetrs=st.executeQuery(sql);
while(rs.next()){
BeanReaderTypea=newBeanReaderType();
a.setReaderTypeId(rs.getInt
(1));
a.setReaderTypeName(rs.getString
(2));
a.setLendBookLimitted(rs.getInt(3));
result.add(a);
}
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
returnresult;
}
/**
*新增读者类别
*@paramrt
*@throwsBaseException
*/
publicvoidcreateReaderType(BeanReaderTypert)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql;
sql="insertintobeanreadertypevalues('"+rt.getReaderTypeId()+"','"+rt.getReaderTypeName()+"','"+rt.getLendBookLimitted()+"')";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{conn.close();}catch(SQLExceptione){e.printStackTrace();}
}
}
/**
*修改读者类别信息
*@paramrt
*@throwsBaseException
*/
publicvoidmodifyReaderType(BeanReaderTypert)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql="updatebeanreadertypesetReaderTypeId='"+rt.getReaderTypeId()+"',ReaderTypeName='"+rt.getReaderTypeName()+"',LendBookLimitted='"+rt.getLendBookLimitted()+"'";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
publicvoiddeleteReaderType(BeanReaderTypert)throwsBaseException{
Connectionconn=null;
try{
conn=DBUtil.getConnection();
Stringsql="deletefromwherereaderid='"+rt.getReaderTypeId()+"'";
java.sql.Statementst=conn.createStatement();
st.execute(sql);
}catch(SQLExceptione){
e.printStackTrace();
thrownewDbException(e);
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
B、给出改造后ReaderManager类的各个方法的代码。
publicclassReaderManager{
publicList
List
returnresult;
}
publicvoidcreateReaderType(BeanReaderTypert)throwsBaseException{
if(rt.getReaderTypeName()==null||"".equals(rt.getReaderTypeName())||rt.getReaderTypeName().length()>20){
thrownewBusinessException("读者类别名称必须是1-20个字");
}
if(rt.getLendBookLimitted()<0||rt.getLendBookLimitted()>100){
thrownewBusinessException("借阅图书数量必须在0-100之间");
}
ReaderTypeDAOr=newReaderTypeDAO();
r.createReaderType(rt);
}
publicvoidmodifyReaderType(BeanReaderTypert)throwsBaseException{
if(rt.getReaderTypeId()<=0){
thrownewBusinessException("读者类别ID必须是大于0的整数");
}
ReaderTypeDAOr=newReaderTypeDAO();
r.modifyReaderType(rt);
}
publicvoiddeleteReaderType(intid)throwsBaseException{
if(id<=0){
thrownewBusinessException("读者类别ID必须是大于0的整数");
}
ReaderTypeDAOr=newReaderTypeDAO();
BeanReaderTypeb=newBeanReaderType();
b.setReaderTypeId(id);
r.modifyReaderType(b);
}
publicList
List
ReaderDAOr=newReaderDAO();
r.searchReader(keyword,keyword,readerTypeId);
returnresult;
}
publicvoidcreateReader(BeanReaderr)throwsBaseException{
if(r.getReaderTypeId()<=0){
thrownewBusinessException("必须指定读者类别");
}
if(r.getReaderid()==null||"".equals(r.getReaderid())||r.getReaderid().length()>20){
thrownewBusinessException("读者证号必须是1-20个字");
}
if(r.getReaderName()==null||"".equals(r.getReaderName())||r.getReaderName().length()>20){
thrownewBusinessException("读者姓名必须是1-20个字");
}
ReaderDAOrt=newReaderDAO();
rt.createReader(r);
}
publicvoidrenameReader(Stringid,Stringname)throwsBaseException{
if(id==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 应用 开发 实验