idea连接数据库实现资料室图书管理系统
时间: 2023-12-10 21:04:06 浏览: 99
以下是使用IntelliJ IDEA连接数据库实现资料室图书管理系统的步骤:
1.在IntelliJ IDEA中创建一个Java项目,并添加所需的依赖库。
2.在项目中创建一个Java类,用于连接数据库。可以使用JDBC连接MySQL数据库,代码如下:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/library?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "123456";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
```
3.在项目中创建一个Java类,用于实现图书管理系统的功能。可以使用JDBC连接数据库,实现增删改查等操作,代码如下:
```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BookDao {
public void addBook(Book book) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBUtil.getConnection();
String sql = "insert into book(name, author, price) values(?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, book.getName());
pstmt.setString(2, book.getAuthor());
pstmt.setDouble(3, book.getPrice());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, pstmt, null);
}
}
public void deleteBook(int id) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBUtil.getConnection();
String sql = "delete from book where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, pstmt, null);
}
}
public void updateBook(Book book) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBUtil.getConnection();
String sql = "update book set name=?, author=?, price=? where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, book.getName());
pstmt.setString(2, book.getAuthor());
pstmt.setDouble(3, book.getPrice());
pstmt.setInt(4, book.getId());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, pstmt, null);
}
}
public Book getBookById(int id) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Book book = null;
try {
conn = DBUtil.getConnection();
String sql = "select * from book where id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, id);
rs = pstmt.executeQuery();
if (rs.next()) {
book = new Book();
book.setId(rs.getInt("id"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setPrice(rs.getDouble("price"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, pstmt, rs);
}
return book;
}
public List<Book> getAllBooks() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Book> list = new ArrayList<Book>();
try {
conn = DBUtil.getConnection();
String sql = "select * from book";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
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"));
list.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, pstmt, rs);
}
return list;
}
}
```
4.在项目中创建一个Java类,用于测试图书管理系统的功能。可以在该类中调用BookDao类中的方法,实现对图书的增删改查等操作,代码如下:
```java
public class Test {
public static void main(String[] args) {
BookDao dao = new BookDao();
// 添加图书
Book book1 = new Book();
book1.setName("Java编程思想");
book1.setAuthor("Bruce Eckel");
book1.setPrice(99.0);
dao.addBook(book1);
// 修改图书
Book book2 = dao.getBookById(1);
book2.setPrice(88.0);
dao.updateBook(book2);
// 删除图书
dao.deleteBook(2);
// 查询所有图书
List<Book> list = dao.getAllBooks();
for (Book book : list) {
System.out.println(book);
}
}
}
```
阅读全文
相关推荐















