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

上传人:ali****an 文档编号:118771837 上传时间:2019-12-25 格式:DOC 页数:12 大小:598.50KB
返回 下载 相关 举报
数据库系统应用与开发实验四_第1页
第1页 / 共12页
数据库系统应用与开发实验四_第2页
第2页 / 共12页
数据库系统应用与开发实验四_第3页
第3页 / 共12页
数据库系统应用与开发实验四_第4页
第4页 / 共12页
数据库系统应用与开发实验四_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数据库系统应用与开发实验四》由会员分享,可在线阅读,更多相关《数据库系统应用与开发实验四(12页珍藏版)》请在金锄头文库上搜索。

1、实验 JDBC基础(3)一、相关知识点1、JDBC基本概念2、JDBC数据增、删、改,事务控制等二、实验目的:理解Java连接数据库的基本概念。理解利用Statement对象、PreparedStatement对象进行增、删、改操作,理解事务的概念和JDBC编程方式。三、实验内容:1、 利用Statement对象进行数据添加。第一步:修改PublisherManager类的createPublisher方法,将其中的insert语言改成用Statement对象执行;第二步:运行图书管理系统,进行添加出版社测试。【实验结果与分析】A、 写出替换的代码部分。Connection conn=null

2、;try conn=DBUtil.getConnection();String sql=select * from BeanPublisher where pubid=+p.getPubid()+;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=selec

3、t * from BeanPublisher where publisherName=+p.getPublisherName()+;st=conn.createStatement();/st.setString(1, p.getPublisherName();rs=st.executeQuery(sql);if(rs.next() throw new BusinessException(出版社名称已经存在);rs.close();st.close();sql=insert into BeanPublisher(pubid,publisherName,address) values(+p.get

4、Pubid()+,+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(); catch (SQLException e) e.printStackTrace();throw new DbException(e);2、 利用insert语句添加数据时,未指定字段值处理。第

5、一步:运行图书管理系统,打开读者类别管理界面,并尝试添加一个读者类别;系统将会报一个错误,请分析说明错误原因。reader.Typeid 是主码 ,不能为空 第二步:通过数据库表结构的修改,解决上述问题。并用同样的方式解决图书借阅功能的bug。打开 企业管理器 ;打开 beanreadertype 表;打开 设计表;将 标识改成 是 ; 第三步:如果表结构不修改,应该如何修改程序,使新增读者类别的ID为表中现有数据的最大ID值+1。public void createReaderType(BeanReaderType rt) throws BaseExceptionif(rt.getReade

6、rTypeName()=null | .equals(rt.getReaderTypeName() | rt.getReaderTypeName().length()20)throw new BusinessException(读者类别名称必须是1-20个字);if(rt.getLendBookLimitted()100)throw new BusinessException(借阅图书数量必须在0-100之间);Connection conn=null;try conn=DBUtil.getConnection();String sql=select * from BeanReaderType

7、 where readerTypeName=?;java.sql.PreparedStatement pst=conn.prepareStatement(sql);pst.setString(1, rt.getReaderTypeName();java.sql.ResultSet rs=pst.executeQuery();if(rs.next() throw new BusinessException(读者类别名称已经被占用);rs.close();pst.close(); sql=select max(readerTypeId)from BeanReadertype;int i=1;pst

8、=conn.prepareStatement(sql);rs = pst.executeQuery();/id=rs.getint +1;if(!rs.next()/是否已经有idi=1;elsei+=rs.getInt(1);sql=insert into BeanReaderType(readerTypeId,readerTypeName,lendBookLimitted) values(?,?,?);pst=conn.prepareStatement(sql);pst.setInt(1,i);pst.setString(2, rt.getReaderTypeName();pst.setI

9、nt(3,rt.getLendBookLimitted();pst.execute();rs.close();pst.close(); catch (SQLException e) e.printStackTrace();throw new DbException(e);finallyif(conn!=null)try conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();3、 利用PreparedStatement对象进行数据修改。在SystemUserManager

10、类中,新建一个modifyUserName方法,实现用户名称(username字段)的修改功能。并修改其main函数,将admin用户的名称改为:超级管理员。【实验结果与分析】A、 请提供方法代码和main函数代码。public void modifyUserName(String username)throws BaseExceptionConnection conn=null;try conn=DBUtil.getConnection();String sql = update beansystemuser set username = +username+ where userid=ad

11、min;java.sql.Statement st=conn.createStatement();int rs = st.executeUpdate(sql); catch (SQLException e) e.printStackTrace();throw new DbException(e);finallyif(conn!=null)try conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public static void main(String args)

12、BeanSystemUser user=new BeanSystemUser();user.setUserid(admin);user.setUsername(系统管理员);user.setUsertype(管理员);try new SystemUserManager().modifyUserName(超级管理员); catch (BaseException e) / TODO Auto-generated catch blocke.printStackTrace();B、 思考:如果上述方法的返回值为布尔类型,即如果成功修改了用户名称,则返回true,如果用户不存在或修改失败返回false。

13、应该如何完善代码。提示:主要statement或PreparedStatement对象的execute方法和executeUpdate方法的区别。public static void main(String args)BeanSystemUser user=new BeanSystemUser();user.setUserid(admin);user.setUsername(系统管理员);user.setUsertype(管理员);try new SystemUserManager().modifyUserName(超级管理员1); catch (BaseException e) / TODO Auto-generated catch blocke.printStackTrace();public void modifyUserName(String username)throws BaseExceptionConnection conn=null;try conn=DBUtil.getConnection();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号