数据库系统应用与开发--实验四

2020-04-16 09:52

实验 JDBC基础(3)

一、相关知识点

1、JDBC基本概念

2、JDBC数据增、删、改,事务控制等

二、实验目的:

理解Java连接数据库的基本概念。理解利用Statement对象、PreparedStatement对象进行增、删、改操作,理解事务的概念和JDBC编程方式。

三、实验内容:

1、 利用Statement对象进行数据添加。

第一步:修改PublisherManager类的createPublisher方法,将其中的insert语言改成用Statement对象执行;

第二步:运行图书管理系统,进行添加出版社测试。

【实验结果与分析】 A、

写出替换的代码部分。

Connection conn=null; try {

conn=DBUtil.getConnection();

String sql=\java.sql.Statement st=conn.createStatement(); //st.setString(1,p.getPubid());

java.sql.ResultSet rs=st.executeQuery(sql);

if(rs.next()) throw new BusinessException(\出版社编号已经被占rs.close(); st.close();

sql=\st=conn.createStatement();

pubid='\+p.getPubid()+\;

用\);

publisherName='\+p.getPublisherName()+\;

// st.setString(1, p.getPublisherName()); rs=st.executeQuery(sql);

if(rs.next()) throw new BusinessException(\出版社名称已经存在rs.close(); st.close();

sql=\

\);

values('\+p.getPubid()+\+p.getPublisherName()+\+p.getAddress(

)+\;

}

st=conn.createStatement(); //st.setString(1, p.getPubid());

//st.setString(2, p.getPublisherName()); //st.setString(3,p.getAddress()); st.execute(sql); st.close();

e.printStackTrace(); throw new DbException(e);

} catch (SQLException e) {

2、 利用insert语句添加数据时,未指定字段值处理。

第一步:运行图书管理系统,打开读者类别管理界面,并尝试添加一个读者类别;系统将会报一个错误,请分析说明错误原因。

reader.Typeid 是主码 ,不能为空

第二步:通过数据库表结构的修改,解决上述问题。并用同样的方式解决图书借阅功能的bug。

打开 企业管理器 ;

打开 beanreadertype 表; 打开 设计表;

将 标识改成 是 ;

第三步:如果表结构不修改,应该如何修改程序,使新增读者类别的ID为表中现有数据的最大ID值+1。

public void createReaderType(BeanReaderType rt) throws BaseException{

if(rt.getReaderTypeName()==null ||

\.equals(rt.getReaderTypeName()) || rt.getReaderTypeName().length()>20){

throw new BusinessException(\读者类别名称必须是1-20个字\); }

if(rt.getLendBookLimitted()<0 || rt.getLendBookLimitted()>100){ throw new BusinessException(\借阅图书数量必须在0-100之间\); }

Connection conn=null; try {

conn=DBUtil.getConnection();

String sql=\

java.sql.PreparedStatement pst=conn.prepareStatement(sql); pst.setString(1, rt.getReaderTypeName()); java.sql.ResultSet rs=pst.executeQuery();

if(rs.next()) throw new BusinessException(\读者类别名称已经被

readerTypeName=?\;

占用\);

rs.close(); pst.close();

int i=1;

pst=conn.prepareStatement(sql); rs = pst.executeQuery(); //id=rs.getint +1;

if(!rs.next()){//是否已经有id i=1; } else{ }

sql=\

i+=rs.getInt(1);

sql=\;

BeanReaderType(readerTypeId,readerTypeName,lendBookLimitted) values(?,?,?)\;

}

finally{ } }

if(conn!=null)

try { }

conn.close();

// TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { pst=conn.prepareStatement(sql); pst.setInt(1,i);

pst.setString(2, rt.getReaderTypeName()); pst.setInt(3,rt.getLendBookLimitted()); pst.execute(); rs.close(); pst.close();

e.printStackTrace(); throw new DbException(e);

} catch (SQLException e) {

3、 利用PreparedStatement对象进行数据修改。

在SystemUserManager类中,新建一个modifyUserName方法,实现用户名称(username字段)的修改功能。并修改其main函数,将admin用户的名称改为:超级管理员。

【实验结果与分析】 A、

请提供方法代码和main函数代码。

public void modifyUserName(String username)throws BaseException{

Connection conn=null;

try { }

finally{ } }

if(conn!=null)

try { }

conn.close();

// TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { conn=DBUtil.getConnection();

String sql = \java.sql.Statement st=conn.createStatement(); int rs = st.executeUpdate(sql);

e.printStackTrace(); throw new DbException(e);

'\+username+\;

} catch (SQLException e) {


数据库系统应用与开发--实验四.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年C语言实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: