maven实现登录修改删除转账
时间: 2024-05-02 08:23:27 浏览: 25
Maven 是一个 Java 项目管理工具,可以用来管理项目中的依赖、构建、测试等。实现登录、修改、删除和转账涉及到数据库操作,因此需要使用相关的依赖库。下面是一个简单的示例,使用 Maven 实现登录、修改、删除和转账的功能:
1. 添加依赖库
在 pom.xml 文件中添加以下依赖库:
```xml
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies>
```
其中,mysql-connector-java 是 MySQL 的 JDBC 驱动库,用于连接 MySQL 数据库;commons-lang3 是 Apache 的常用工具库,用于生成随机字符串。
2. 实现登录功能
登录功能需要连接到 MySQL 数据库,查询用户名和密码是否匹配。可以使用 PreparedStatement 对象来预编译 SQL 语句,避免 SQL 注入攻击。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginDao {
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "root";
public boolean checkLogin(String username, String password) {
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM user WHERE username = ? AND password = ?")) {
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
return rs.next();
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
}
```
在上面的代码中,数据库连接的 URL、用户名和密码都是硬编码的,可以通过配置文件来进行配置。
3. 实现修改和删除功能
修改和删除功能需要对数据库进行更新操作,可以使用 PreparedStatement 对象来预编译 SQL 语句,避免 SQL 注入攻击。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserDao {
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "root";
public boolean updateUser(String username, String newpassword) {
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("UPDATE user SET password = ? WHERE username = ?")) {
stmt.setString(1, newpassword);
stmt.setString(2, username);
int rows = stmt.executeUpdate();
return rows > 0;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
public boolean deleteUser(String username) {
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement("DELETE FROM user WHERE username = ?")) {
stmt.setString(1, username);
int rows = stmt.executeUpdate();
return rows > 0;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
}
```
4. 实现转账功能
转账功能需要对数据库进行事务操作,避免数据不一致。可以使用 Connection 对象来创建事务,手动提交或回滚事务。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TransferDao {
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String password = "root";
public boolean transfer(String from, String to, double amount) {
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt1 = conn.prepareStatement("UPDATE account SET balance = balance - ? WHERE username = ?");
PreparedStatement stmt2 = conn.prepareStatement("UPDATE account SET balance = balance + ? WHERE username = ?")) {
conn.setAutoCommit(false);
stmt1.setDouble(1, amount);
stmt1.setString(2, from);
stmt1.executeUpdate();
stmt2.setDouble(1, amount);
stmt2.setString(2, to);
stmt2.executeUpdate();
conn.commit();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
}
```
在上面的代码中,使用 conn.setAutoCommit(false) 来关闭自动提交事务,使用 conn.commit() 提交事务,使用 conn.rollback() 回滚事务。
以上就是使用 Maven 实现登录、修改、删除和转账的简单示例。当然,在实际开发中,还需要考虑安全性、性能等问题。