con = GetDBConnection.connectDB(DBName, userName, password); ResultSet rs; try { PreparedStatement ps = con.prepareStatement("select * from books;"); rs = ps.executeQuery(); while (rs.next()) { int bookid = rs.getInt("bookid"); String bookname = rs.getString("bookname"); String bookauthor = rs.getString("bookauthor"); System.out.printf("%d\t", bookid); System.out.printf("%s\t", bookname); System.out.printf("%s\n", bookauthor); } con.close(); } catch (SQLException e) { System.out.println(e.getMessage()); }
时间: 2024-04-02 07:31:28 浏览: 50
这段代码是 Java 语言中的数据库操作代码,其作用是从指定的数据库中读取名为 `books` 的数据表中的所有数据,然后输出到控制台上。
具体来说,`con = GetDBConnection.connectDB(DBName, userName, password);` 这行代码是通过调用 `GetDBConnection` 类中的 `connectDB` 方法连接到指定的数据库,其中 `DBName`、`userName` 和 `password` 分别是数据库的名称、用户名和密码。
接着,使用 `PreparedStatement` 对象执行 SQL 查询语句 `select * from books;`,并将查询结果存储在 `ResultSet` 对象 `rs` 中。然后使用 `while (rs.next())` 循环遍历查询结果集,将每一行数据中的 `bookid`、`bookname` 和 `bookauthor` 字段值分别存储在变量 `bookid`、`bookname` 和 `bookauthor` 中,然后使用 `System.out.printf()` 方法将它们输出到控制台上。
最后,在 `try` 块的末尾关闭数据库连接。
如果在执行过程中出现了 SQL 异常,比如语法错误或数据访问错误,将会在控制台上输出异常信息。
相关问题
public static void add() { con = GetDBConnection.connectDB(DBName, userName, password); }利用Java和这个框架写一个增加图书
假设你已经有一个 Book 类,包含属性如下:
```
public class Book {
private int id;
private String title;
private String author;
private String publisher;
private int year;
private double price;
// getters and setters
}
```
那么你可以按照如下的步骤来写一个增加图书的函数:
1. 在数据库中创建一个表,用于存储图书信息。假设表名为 `books`,包含如下字段:
```
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
author varchar(255) NOT NULL,
publisher varchar(255) NOT NULL,
year int(4) NOT NULL,
price double NOT NULL,
PRIMARY KEY (id)
```
2. 在 GetDBConnection 类中编写一个静态方法来获取数据库连接,例如:
```
public static Connection connectDB(String dbName, String userName, String password) throws SQLException {
String url = "jdbc:mysql://localhost/" + dbName;
Connection con = DriverManager.getConnection(url, userName, password);
return con;
}
```
3. 编写一个静态方法来添加图书信息,例如:
```
public static void addBook(Book book) throws SQLException {
con = GetDBConnection.connectDB(DBName, userName, password);
String sql = "INSERT INTO books (title, author, publisher, year, price) VALUES (?, ?, ?, ?, ?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, book.getTitle());
ps.setString(2, book.getAuthor());
ps.setString(3, book.getPublisher());
ps.setInt(4, book.getYear());
ps.setDouble(5, book.getPrice());
ps.executeUpdate();
ps.close();
con.close();
}
```
在这个方法中,我们首先获取数据库连接,然后使用 PrepareStatement 对象来执行 SQL 语句。我们将 Book 对象的属性作为参数设置到 PreparedStatement 对象中,然后执行 `executeUpdate()` 方法来执行 SQL 语句,将图书信息添加到数据库中。最后,记得关闭 PrepareStatement 和 Connection 对象。
4. 在主程序中调用 addBook() 方法,例如:
```
public static void main(String[] args) {
Book book = new Book();
book.setTitle("Java Programming");
book.setAuthor("John Smith");
book.setPublisher("Wiley");
book.setYear(2021);
book.setPrice(59.99);
try {
GetDBConnection.addBook(book);
System.out.println("Book added successfully!");
} catch (SQLException e) {
e.printStackTrace();
}
}
```
这段代码创建一个 Book 对象,设置属性,然后调用 addBook() 方法将图书信息添加到数据库中。如果添加成功,程序会输出 "Book added successfully!"。如果添加失败,程序会打印出 SQLException 的堆栈信息。
如何实现将自己的JAVA前端页面网址发送给任何一个人,用户提交的信息能够通过后端JAVA代码传递给并保存到数据库中
在Java Web开发中,将前端页面网址分享给他人,并收集用户信息后存入数据库,通常涉及以下几个步骤:
1. **创建HTML表单**:设计一个包含所需字段(如姓名、邮箱等)的简单HTML表单,用户填写完毕后可以点击提交按钮。
```html
<form action="submit-form.jsp" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="username"><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email"><br>
<input type="submit" value="提交">
</form>
```
2. **设置后端处理页面**:创建一个名为`submit-form.jsp`的JSP文件,这个页面负责接收前端的数据并将它们转发给Java控制器。这里我们使用Servlet技术:
```java
// FormSubmitServlet.java (Java Servlet)
@WebServlet("/submit-form")
public class FormSubmitServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String email = request.getParameter("email");
// 将数据保存到数据库
MyDatabaseDAO dao = new MyDatabaseDAO();
dao.saveUser(username, email);
// 发送响应
response.sendRedirect("/");
}
}
```
3. **连接数据库**:创建一个DAO(Data Access Object)类,用于操作数据库。这通常涉及到JDBC或ORM框架(如Hibernate或MyBatis):
```java
// MyDatabaseDAO.java
import java.sql.Connection;
import java.sql.PreparedStatement;
public class MyDatabaseDAO {
public void saveUser(String username, String email) {
Connection conn = getDBConnection(); // 获取数据库连接
String sql = "INSERT INTO users (username, email) VALUES (?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, username);
pstmt.setString(2, email);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
private Connection getDBConnection() { ... } // 连接数据库的方法省略
}
```
4. **安全性考虑**:确保对敏感信息的传输进行加密(如使用HTTPS),以及在数据库层面实施合适的访问控制。
当用户从前端提交表单后,他们的信息会被发送到`FormSubmitServlet`,然后通过`MyDatabaseDAO`类保存到指定的数据库表中。
阅读全文