永发信息网

编写一个代码以显示这些详细信息。

答案:1  悬赏:20  手机版
解决时间 2021-08-23 15:16
  • 提问者网友:謫仙
  • 2021-08-23 08:31

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

最佳答案
  • 五星知识达人网友:轮獄道
  • 2021-08-23 09:29

数据库的建立应该不用再讲了吧,现在讲使用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());
  }
 }


}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯