java mysql 新增数据后台能获取到显示新增成功但是数据库没有
时间: 2024-06-04 08:07:55 浏览: 76
可能是你的代码中缺少了提交事务的操作,导致数据并没有真正地插入到数据库中。
在使用 JDBC 进行数据库操作时,我们需要手动开启事务(通过 `setAutoCommit(false)` 方法),并在事务中执行所有的 SQL 操作。如果所有的操作都成功完成,我们需要调用 `commit()` 方法提交事务,否则调用 `rollback()` 方法回滚事务。
你需要检查一下你的代码是否有以下操作:
1. 开启事务:`connection.setAutoCommit(false);`
2. 执行 SQL 语句:`statement.executeUpdate(sql);`
3. 提交事务:`connection.commit();`
如果你的代码中没有以上操作,请尝试添加这些操作并重新运行程序。如果问题仍然存在,请检查数据库连接是否正确,以及是否有其他的错误日志输出。
相关问题
java mysql 新增数据后台能获取到显示新增成功,显示了一部分数据
如果您想在Java后台中获取到新增数据并显示成功信息,可以按照以下步骤进行操作:
1. 编写Java代码连接到MySQL数据库,具体可以使用JDBC或者Mybatis等框架。
2. 在Java代码中编写SQL语句,实现新增数据的操作。
3. 在Java代码中调用SQL语句执行新增操作,并判断返回结果是否成功。
4. 如果新增成功,可以在Java代码中查询刚刚新增的数据,并将其返回给前端页面显示成功信息和新增数据。
以下是一个简单的示例代码:
```
// 连接到MySQL数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
// 编写SQL语句,实现新增数据的操作
String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "Tom");
pstmt.setInt(2, 20);
// 调用SQL语句执行新增操作,并判断返回结果是否成功
int result = pstmt.executeUpdate();
if (result > 0) {
// 如果新增成功,查询刚刚新增的数据,并将其返回给前端页面显示成功信息和新增数据
String querySql = "SELECT * FROM user WHERE name=?";
PreparedStatement queryPstmt = conn.prepareStatement(querySql);
queryPstmt.setString(1, "Tom");
ResultSet rs = queryPstmt.executeQuery();
if (rs.next()) {
System.out.println("新增成功:id=" + rs.getInt("id") + ", name=" + rs.getString("name") + ", age=" + rs.getInt("age"));
}
}
```
使用Java和MySQL数据库实现 图书管理后台功能 1.支持用户注册与登录 如果登录失败或者注册失败,可以重新登录或注册。要求注册的账号密码不为空。登录三次失败,则关闭系统。 2.登录成功后,支持用户进行图书的增删改查操作 输入1,查询所有数据 输入2,根据id查询单条数据 输入3,新增一条数据,需要管理员录入书名、价格(元),id是唯一主键,支持自增 输入4,管理员录入id、书名、价格(元),如果id在库中不存在,则提示该书不存在,修改失败 输入5,管理员输入id,根据id删除库中对应条目。如果id在库中不存在,则提示该书不存在,删除失败 输入0,退出账号并关闭系统
好的,以下是代码实现:
```java
import java.sql.*;
import java.util.Scanner;
public class BookManagementSystem {
private static final String URL = "jdbc:mysql://localhost:3306/book_management_system?useSSL=false&serverTimezone=UTC";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
private static Connection connection;
private static Statement statement;
private static ResultSet resultSet;
public static void main(String[] args) {
try {
// 连接数据库
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
statement = connection.createStatement();
// 用户登录
int loginAttempts = 0;
while (loginAttempts < 3) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
if (login(username, password)) {
System.out.println("登录成功!");
break;
} else {
System.out.println("登录失败,请重新输入!");
loginAttempts++;
}
}
if (loginAttempts == 3) {
System.out.println("登录失败次数达到3次,系统关闭!");
System.exit(0);
}
// 图书管理
while (true) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择操作:");
System.out.println("1.查询所有数据");
System.out.println("2.根据id查询单条数据");
System.out.println("3.新增一条数据");
System.out.println("4.修改一条数据");
System.out.println("5.删除一条数据");
System.out.println("0.退出账号并关闭系统");
int choice = scanner.nextInt();
switch (choice) {
case 1:
queryAll();
break;
case 2:
System.out.println("请输入id:");
int id = scanner.nextInt();
queryById(id);
break;
case 3:
System.out.println("请输入书名:");
String name = scanner.next();
System.out.println("请输入价格:");
double price = scanner.nextDouble();
insert(name, price);
break;
case 4:
System.out.println("请输入id:");
int updateId = scanner.nextInt();
System.out.println("请输入书名:");
String updateName = scanner.next();
System.out.println("请输入价格:");
double updatePrice = scanner.nextDouble();
update(updateId, updateName, updatePrice);
break;
case 5:
System.out.println("请输入id:");
int deleteId = scanner.nextInt();
delete(deleteId);
break;
case 0:
System.out.println("退出账号并关闭系统!");
System.exit(0);
break;
default:
System.out.println("无效操作!");
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 用户登录
private static boolean login(String username, String password) throws SQLException {
String sql = "SELECT * FROM user WHERE username='" + username + "' AND password='" + password + "'";
resultSet = statement.executeQuery(sql);
return resultSet.next();
}
// 查询所有数据
private static void queryAll() throws SQLException {
String sql = "SELECT * FROM book";
resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
double price = resultSet.getDouble("price");
System.out.println("id:" + id + ",书名:" + name + ",价格:" + price);
}
}
// 根据id查询单条数据
private static void queryById(int id) throws SQLException {
String sql = "SELECT * FROM book WHERE id=" + id;
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
String name = resultSet.getString("name");
double price = resultSet.getDouble("price");
System.out.println("id:" + id + ",书名:" + name + ",价格:" + price);
} else {
System.out.println("该书不存在!");
}
}
// 新增一条数据
private static void insert(String name, double price) throws SQLException {
String sql = "INSERT INTO book(name, price) VALUES('" + name + "'," + price + ")";
statement.executeUpdate(sql);
System.out.println("新增成功!");
}
// 修改一条数据
private static void update(int id, String name, double price) throws SQLException {
String sql = "SELECT * FROM book WHERE id=" + id;
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
sql = "UPDATE book SET name='" + name + "', price=" + price + " WHERE id=" + id;
statement.executeUpdate(sql);
System.out.println("修改成功!");
} else {
System.out.println("该书不存在!");
}
}
// 删除一条数据
private static void delete(int id) throws SQLException {
String sql = "SELECT * FROM book WHERE id=" + id;
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
sql = "DELETE FROM book WHERE id=" + id;
statement.executeUpdate(sql);
System.out.println("删除成功!");
} else {
System.out.println("该书不存在!");
}
}
}
```
需要注意的是,这里使用了JDBC来连接MySQL数据库,需要先在本地安装并启动MySQL。另外,为了简化代码,这里使用了Statement对象来执行SQL语句,实际应用中应该使用PreparedStatement对象来防止SQL注入攻击。
阅读全文