用Java写一个使用Mysql数据库机构,用于注册登录的程序
时间: 2023-09-06 19:13:06 浏览: 68
好的,以下是一个简单的Java程序,使用Mysql数据库实现注册和登录功能:
首先,需要导入相关的Java库:
```java
import java.sql.*;
import java.util.Scanner;
```
然后,连接到Mysql数据库:
```java
String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库连接地址
String username = "root"; // 数据库用户名
String password = "password"; // 数据库密码
try {
Connection con = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
```
其中,mydatabase是你的数据库名称。
接下来,实现注册功能:
```java
Scanner sc = new Scanner(System.in);
System.out.print("请输入用户名:");
String username = sc.nextLine();
System.out.print("请输入密码:");
String password = sc.nextLine();
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ps.executeUpdate();
System.out.println("注册成功!");
} catch (SQLException e) {
e.printStackTrace();
}
```
其中,users是你的数据表名称,包含两个字段:username和password。
最后,实现登录功能:
```java
Scanner sc = new Scanner(System.in);
System.out.print("请输入用户名:");
String username = sc.nextLine();
System.out.print("请输入密码:");
String password = sc.nextLine();
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
} catch (SQLException e) {
e.printStackTrace();
}
```
其中,使用PreparedStatement预编译SQL语句,防止SQL注入攻击。
完整代码如下:
```java
import java.sql.*;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库连接地址
String username = "root"; // 数据库用户名
String password = "password"; // 数据库密码
try {
Connection con = DriverManager.getConnection(url, username, password);
Scanner sc = new Scanner(System.in);
System.out.println("请选择操作:");
System.out.println("1. 注册");
System.out.println("2. 登录");
int choice = sc.nextInt();
if (choice == 1) {
System.out.print("请输入用户名:");
String newUsername = sc.next();
System.out.print("请输入密码:");
String newPassword = sc.next();
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, newUsername);
ps.setString(2, newPassword);
ps.executeUpdate();
System.out.println("注册成功!");
} catch (SQLException e) {
e.printStackTrace();
}
} else if (choice == 2) {
System.out.print("请输入用户名:");
String usernameInput = sc.next();
System.out.print("请输入密码:");
String passwordInput = sc.next();
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
try {
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, usernameInput);
ps.setString(2, passwordInput);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
} catch (SQLException e) {
e.printStackTrace();
}
} else {
System.out.println("无效的操作!");
}
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
注意,这只是一个简单的示例程序,实际应用中需要考虑更多的安全性和错误处理。
阅读全文