Nachdem wir die Infrastruktur für Datenbankoperationen fertiggestellt haben, ist es für uns an der Zeit, tatsächlich JDBC-Datenoperationen durchzuführen. Das ER-Diagramm der betreffenden Datenbanktabelle lautet wie folgt:
Wie in der Abbildung oben gezeigt, besteht unser erster Schritt darin, Datensätze zur Tabelle t_user hinzuzufügen. Da für die Benutzerregistrierung mehrere Tabellen erforderlich sind, müssen zunächst Transaktionen geschrieben werden. Der Code lautet wie folgt:
@Override public long registerUser(Map<String, Object> userInfo) { Connection conn = null; long userId = 0; try { conn = JdbcDs.getConnection(); conn.setAutoCommit(false); userId = addUser(conn, userInfo); if (userId <= 0) { throw new SQLException("Fail to add user in t_user"); } conn.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } userId = -1; } finally { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return userId; }
Der zweite ist die spezifische Benutzerhinzufügungsoperation Der Code lautet wie folgt:
private long addUser(Connection conn, Map<String, Object> userInfo) { long userId = -1; PreparedStatement stmt = null; ResultSet rst = null; String sql = "insert into t_user(user_name, user_group_id, user_level_id) values(?, 2, 1)"; try { stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); stmt.setString(1, (String)userInfo.get("userName")); int affectedNum = stmt.executeUpdate(); if (1 == affectedNum) { rst = stmt.getGeneratedKeys(); if (rst.next()) { userId = rst.getLong(1); } } else { userId = -1; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); userId = -1; } finally { try { if (rst != null) { rst.close(); } if (stmt != null) { stmt.close(); } } catch (Exception ex) { } } return userId; }
Schließlich wird die Erfolgsbedingung im Testfall in die zurückgegebene Benutzer-ID größer als 0 geändert.
Führen Sie den Testfall aus und er sollte erfolgreich verlaufen.
Nach den oben genannten Artikeln können wir endlich sinnvolle Entwicklungsarbeit leisten. Der nächste Schritt besteht darin, die gesamte Geschäftslogik für die Benutzerregistrierung zu implementieren, und ein weiterer Schritt besteht darin, ungewöhnliche Situationen wie wiederholte Benutzernamen zu behandeln. Nachdem wir alle diese Funktionen abgeschlossen haben, müssen wir auch einen End-to-End-Test durchführen, der Registrierungstests über JSP-Seiten umfasst.
Das Obige ist der Inhalt der neuen Java-Bewegung: Testgetriebene Entwicklung 3 --- Benutzerregistrierung 4. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!