用Java连接数据库写一个网上图书的程序设计
时间: 2023-07-20 21:31:31 浏览: 96
基于 java web 连接 数据库 开发的图书管理系统
好的,我可以帮你解答这个问题。
首先,需要在Java中连接数据库。常用的数据库连接方式有JDBC和Hibernate。这里以JDBC为例。
1. 导入数据库驱动
在Java程序中连接数据库需要使用相应的数据库驱动,比如MySQL需要使用mysql-connector-java.jar,Oracle需要使用ojdbc.jar等。将驱动包导入到项目中。
2. 建立数据库连接
使用Java中的JDBC API建立与数据库的连接。具体步骤如下:
```java
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
String url = "jdbc:mysql://localhost:3306/bookstore";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
```
3. 执行SQL语句
使用Statement或PreparedStatement对象执行SQL语句,比如查询图书信息、添加图书、删除图书等。具体步骤如下:
```java
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行查询语句
String sql = "SELECT * FROM book WHERE book_name = 'Java编程思想'";
ResultSet rs = stmt.executeQuery(sql);
// 处理查询结果
while (rs.next()) {
System.out.println(rs.getString("book_name"));
}
// 关闭ResultSet和Statement对象
rs.close();
stmt.close();
```
4. 关闭数据库连接
使用完数据库连接后,需要关闭连接。具体步骤如下:
```java
// 关闭连接
conn.close();
```
以上就是使用Java连接数据库的基本步骤。
接下来,以网上图书为例,设计一个简单的程序。程序需要实现以下功能:
1. 查询图书信息
2. 添加图书
3. 删除图书
程序结构如下:
```
├── lib
│ ├── mysql-connector-java.jar
├── src
│ ├── Book.java
│ ├── BookDao.java
│ ├── BookDaoImpl.java
│ └── Main.java
└── config.properties
```
其中,lib目录下存放MySQL数据库驱动包,config.properties文件中存放数据库连接信息。
Book类表示图书信息,包括图书ID、图书名称、图书作者、图书价格等属性。BookDao接口定义了对图书信息进行操作的方法,包括查询图书信息、添加图书、删除图书等。BookDaoImpl类实现了BookDao接口中的方法,具体实现如下:
```java
public class BookDaoImpl implements BookDao {
private Connection conn;
public BookDaoImpl() throws SQLException, ClassNotFoundException {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 读取配置文件中的数据库连接信息
Properties prop = new Properties();
InputStream in = getClass().getClassLoader().getResourceAsStream("config.properties");
prop.load(in);
in.close();
// 建立连接
String url = prop.getProperty("url");
String user = prop.getProperty("user");
String password = prop.getProperty("password");
conn = DriverManager.getConnection(url, user, password);
}
public List<Book> queryAllBooks() throws SQLException {
List<Book> books = new ArrayList<>();
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行查询语句
String sql = "SELECT * FROM book";
ResultSet rs = stmt.executeQuery(sql);
// 处理查询结果
while (rs.next()) {
Book book = new Book();
book.setId(rs.getInt("id"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setPrice(rs.getDouble("price"));
books.add(book);
}
// 关闭ResultSet和Statement对象
rs.close();
stmt.close();
return books;
}
public int addBook(Book book) throws SQLException {
// 创建PreparedStatement对象
String sql = "INSERT INTO book(name, author, price) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, book.getName());
pstmt.setString(2, book.getAuthor());
pstmt.setDouble(3, book.getPrice());
// 执行插入语句
int count = pstmt.executeUpdate();
// 关闭PreparedStatement对象
pstmt.close();
return count;
}
public int deleteBook(int id) throws SQLException {
// 创建PreparedStatement对象
String sql = "DELETE FROM book WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
// 执行删除语句
int count = pstmt.executeUpdate();
// 关闭PreparedStatement对象
pstmt.close();
return count;
}
public void close() throws SQLException {
// 关闭连接
conn.close();
}
}
```
Main类中实现了查询、添加、删除图书的代码:
```java
public class Main {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 创建BookDao对象
BookDao dao = new BookDaoImpl();
// 查询所有图书信息
List<Book> books = dao.queryAllBooks();
for (Book book : books) {
System.out.println(book);
}
// 添加一本新图书
Book newBook = new Book();
newBook.setName("Java编程思想");
newBook.setAuthor("Bruce Eckel");
newBook.setPrice(99);
dao.addBook(newBook);
// 删除一本图书
dao.deleteBook(3);
// 关闭连接
dao.close();
}
}
```
以上就是使用Java连接数据库并实现网上图书程序的基本步骤。
阅读全文