first commit
This commit is contained in:
108
create_account.java
Normal file
108
create_account.java
Normal file
@@ -0,0 +1,108 @@
|
||||
import java.sql.*;
|
||||
import java.util.UUID;
|
||||
|
||||
public class create_account {
|
||||
public static void main(String[] args) {
|
||||
String dbPath = "/home/renjianbo/gerrit_install/review_site/db/ReviewDB";
|
||||
String username = "renjianbo";
|
||||
String email = "renjianbo@example.com";
|
||||
String fullName = "renjianbo";
|
||||
|
||||
try {
|
||||
// 加载 H2 驱动
|
||||
Class.forName("org.h2.Driver");
|
||||
|
||||
// 连接数据库
|
||||
String url = "jdbc:h2:" + dbPath + ";AUTO_SERVER=TRUE";
|
||||
Connection conn = DriverManager.getConnection(url, "sa", "");
|
||||
|
||||
// 检查账户是否存在
|
||||
PreparedStatement checkStmt = conn.prepareStatement(
|
||||
"SELECT account_id FROM accounts WHERE account_id = 1000000"
|
||||
);
|
||||
ResultSet rs = checkStmt.executeQuery();
|
||||
|
||||
int accountId = 1000000;
|
||||
if (!rs.next()) {
|
||||
// 创建新账户
|
||||
PreparedStatement insertAccount = conn.prepareStatement(
|
||||
"INSERT INTO accounts (account_id, full_name, preferred_email, inactive, registered_on) " +
|
||||
"VALUES (?, ?, ?, ?, ?)"
|
||||
);
|
||||
insertAccount.setInt(1, accountId);
|
||||
insertAccount.setString(2, fullName);
|
||||
insertAccount.setString(3, email);
|
||||
insertAccount.setInt(4, 0);
|
||||
insertAccount.setTimestamp(5, new Timestamp(System.currentTimeMillis()));
|
||||
insertAccount.executeUpdate();
|
||||
System.out.println("账户创建成功: " + accountId);
|
||||
} else {
|
||||
// 更新现有账户
|
||||
PreparedStatement updateAccount = conn.prepareStatement(
|
||||
"UPDATE accounts SET full_name = ?, preferred_email = ? WHERE account_id = ?"
|
||||
);
|
||||
updateAccount.setString(1, fullName);
|
||||
updateAccount.setString(2, email);
|
||||
updateAccount.setInt(3, accountId);
|
||||
updateAccount.executeUpdate();
|
||||
System.out.println("账户更新成功: " + accountId);
|
||||
}
|
||||
|
||||
// 设置用户名
|
||||
PreparedStatement checkExtId = conn.prepareStatement(
|
||||
"SELECT account_id FROM account_external_ids WHERE account_id = ? AND external_id = ?"
|
||||
);
|
||||
checkExtId.setInt(1, accountId);
|
||||
checkExtId.setString(2, "username:" + username);
|
||||
rs = checkExtId.executeQuery();
|
||||
|
||||
if (!rs.next()) {
|
||||
PreparedStatement insertExtId = conn.prepareStatement(
|
||||
"INSERT INTO account_external_ids (account_id, email_address, password, external_id) " +
|
||||
"VALUES (?, ?, NULL, ?)"
|
||||
);
|
||||
insertExtId.setInt(1, accountId);
|
||||
insertExtId.setString(2, email);
|
||||
insertExtId.setString(3, "username:" + username);
|
||||
insertExtId.executeUpdate();
|
||||
System.out.println("用户名设置成功: " + username);
|
||||
} else {
|
||||
PreparedStatement updateExtId = conn.prepareStatement(
|
||||
"UPDATE account_external_ids SET email_address = ? WHERE account_id = ? AND external_id = ?"
|
||||
);
|
||||
updateExtId.setString(1, email);
|
||||
updateExtId.setInt(2, accountId);
|
||||
updateExtId.setString(3, "username:" + username);
|
||||
updateExtId.executeUpdate();
|
||||
System.out.println("用户名更新成功: " + username);
|
||||
}
|
||||
|
||||
// 设置为管理员(如果是第一个账户)
|
||||
PreparedStatement checkAdmin = conn.prepareStatement(
|
||||
"SELECT account_id FROM account_group_members WHERE account_id = ? AND group_id = " +
|
||||
"(SELECT group_id FROM account_groups WHERE name = 'Administrators')"
|
||||
);
|
||||
checkAdmin.setInt(1, accountId);
|
||||
rs = checkAdmin.executeQuery();
|
||||
|
||||
if (!rs.next()) {
|
||||
PreparedStatement addAdmin = conn.prepareStatement(
|
||||
"INSERT INTO account_group_members (account_id, group_id, added_on) " +
|
||||
"SELECT ?, group_id, ? FROM account_groups WHERE name = 'Administrators'"
|
||||
);
|
||||
addAdmin.setInt(1, accountId);
|
||||
addAdmin.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
|
||||
addAdmin.executeUpdate();
|
||||
System.out.println("已设置为管理员");
|
||||
}
|
||||
|
||||
conn.close();
|
||||
System.out.println("完成!账户 ID: " + accountId + ", 用户名: " + username);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("错误: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user