Heim > Java > javaLernprogramm > Die neue Java-Bewegung: Testgetriebene Entwicklung 3 – Benutzerregistrierung 4

Die neue Java-Bewegung: Testgetriebene Entwicklung 3 – Benutzerregistrierung 4

黄舟
Freigeben: 2016-12-30 13:17:15
Original
1083 Leute haben es durchsucht

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:

Die neue Java-Bewegung: Testgetriebene Entwicklung 3 – Benutzerregistrierung 4

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;
	}
Nach dem Login kopieren

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;
	}
Nach dem Login kopieren

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)!


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage