永发信息网

编写代码以显示这些详细信息!!!!

答案:2  悬赏:70  手机版
解决时间 2021-05-02 20:55

图书馆维护人员想要查看书名以及各自的作者名。数据库采用SQLServer2005,首先写出创建数据库和相关表的SQL语句,并在表中插入几行数据,然后用java写出详细完整的代码。

最佳答案

数据库的建立应该不用再讲了吧,现在讲使用JAVA与数据库进行交互


使用JDBC进行数据库的增删改查操作


1.下载Microsoft SQL Server 2005 JDBC 驱动包jar文件


   将jar文件引入工程中


2.封装数据库链接的获取和关闭操作


import java.sql.*;


public class BaseDao {
 
 private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver";


 
 private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs";


 
 private static final String USER = "sa";


 
 private static final String PASSWORD = "";


 
 public static Connection getConnection() throws Exception {
  Class.forName(DRIVE);
  return DriverManager.getConnection(URL, USER, PASSWORD);
 }


 
 public static void closeAll(ResultSet resultSet, PreparedStatement pst,
   Connection connection) throws Exception {
  if (resultSet != null)
   resultSet.close();
  if (pst != null)
   pst.close();
  if (connection != null)
   connection.close();
 }


}


3.创建图书的实体类


public class Book {
 
 private Long id;


 
 private String author;


 
 private String name;
 
 public Book() {
 }
 
 public Book(Long id, String author, String name) {
  this.id = id;
  this.author = author;
  this.name = name;
 }
 
 public String getAuthor() {
  return author;
 }
 public void setAuthor(String author) {
  this.author = author;
 }
 public Long getId() {
  return id;
 }
 public void setId(Long id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}
4.创建与图书表交互的工具类


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class BookDao {
 
 public void addBook(Book book) throws Exception {
  // 连接
  Connection connection = null;
  // 执行语句
  PreparedStatement pst = null;
  try {
   connection = BaseDao.getConnection();
   // 构造执行语句
   String sql = "insert into book values(" + book.getAuthor() + ","
    + book.getName() + ")";
   pst = connection.prepareStatement(sql);
   pst.executeUpdate();


  } catch (Exception e) {
   // 抛出异常
   throw e;
  } finally {
   // 无论是否异常 均关闭数据库
   BaseDao.closeAll(null, pst, connection);
  }
 }


 
 public List<Book> getBooks() throws Exception {
  // 用于存放查寻结果的集合
  List<Book> books = new ArrayList<Book>();
  // 连接
  Connection connection = null;
  // 执行语句
  PreparedStatement pst = null;
  // 查询结果
  ResultSet resultSet = null;
  try {
   connection = BaseDao.getConnection();
   // 构造查询语句
   String sql = "select * from book";
   pst = connection.prepareStatement(sql);
   resultSet = pst.executeQuery();


   // 循环读取查询结果行
   while (resultSet.next()) {
    // getXXX的参数为数据表列名
    Book book = new Book(resultSet.getLong("id"), resultSet
    .getString("author"), resultSet.getString("name"));
    // 将封装好的图书对象存入集合
    books.add(book);
   }
  } catch (Exception e) {
   // 抛出异常
   throw e;
  } finally {
   // 无论是否异常 均关闭数据库
   BaseDao.closeAll(resultSet, pst, connection);
  }
  // 返回查询结果
  return books;
 }



}


当然 以上只是简单的封装 初学者可以在理解以上代码的基础上 进行更高级的封装
5.使用BookDao添加书籍和获取所有书籍列表


import java.util.List;



public class Test {


 
 public static void main(String[] args) throws Exception {
  //创建工具类对象
  BookDao dao = new BookDao();
  //创建一本图书
  Book book = new Book(null,"QQ:495691293","编程菜鸟");
  //添加书籍到数据库
  dao.addBook(book);
  
  //获取所有图书列表
  List<Book> books = dao.getBooks();
  //输出结果
  for (Book b : books) {
   System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName());
  }
 }


}

全部回答

建议你自己写,又不是很难。

1.创建库和相关表 完全可以手动拖拽式完成,完成后也可以反向生成建库建表的SQL语句。

2.写个JDBC用于数据库连接,实在不会的话可以上网搜下,多的是。

3.写个insert into语句不就完了,很简单。不会M我就行

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天龙八部上暗恋阿紫的那个爷们叫什么名?戴着
翠英百货副食超市在什么地方啊,我要过去处理
**出来了,该怎么办?
萍聚的含义
办理药店执照
如何增大QQ聊天字?
忘不了的一段记忆……是忧,还是该乐呢?
仙人掌的根是什么,仙人掌有种子吗
政和县林业局东平林业站我想知道这个在什么地
郑州卖羽绒服地方~
倍尔捷电动车好吗?
语言学概论的学习方法及重难点
洛奇黑皮蛋任务和G1G2G3任务求详细攻略
邮局现在不寄小包裹了吗?我武汉的,去寄一个
怎样去爱护他,关心他,心疼他,爱他?
推荐资讯
王爷的长子的打扮怎么描述?
龙ol音律是内功还是外功额?天资和属性怎么加
为什么我一直在错过?
摩托V3键盘怎么设置亮光??
开头的音乐(跪求)注意啊 是刚开头的音乐 不
挤过黑头后有小洞洞怎么办
双子座和金牛座合得来吗?
DNF离得宠物怎么饱和
环境真的能改变一个人吗?
我的QQ图标总显示有新邮件一封,可打开后显示
银洁这个地址在什么地方,我要处理点事
谁能帮我开下游戏人生?帮开的速度联系
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?