Maison > Java > javaDidacticiel > Le nouveau mouvement Java : développement piloté par les tests 3 ---enregistrement des utilisateurs 4

Le nouveau mouvement Java : développement piloté par les tests 3 ---enregistrement des utilisateurs 4

黄舟
Libérer: 2016-12-30 13:17:15
original
1077 Les gens l'ont consulté

Après avoir terminé l'infrastructure pour les opérations de base de données, il est temps pour nous d'effectuer réellement les opérations sur les données JDBC. Le diagramme ER de la table de base de données impliquée est le suivant :

Le nouveau mouvement Java : développement piloté par les tests 3 ---enregistrement des utilisateurs 4

Comme le montre la figure ci-dessus, notre première étape consiste à ajouter des enregistrements à la table t_user. Étant donné que l'enregistrement des utilisateurs nécessite l'exploitation de plusieurs tables, les transactions doivent être utilisées. Tout d'abord, écrivez un cadre de transaction simple basé sur JDBC. Le code est le suivant :

@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;
	}
Copier après la connexion

La seconde est l'opération d'ajout d'utilisateur spécifique. Le code est le suivant :

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;
	}
Copier après la connexion

Enfin, modifiez la condition de réussite dans le scénario de test par l'ID utilisateur renvoyé supérieur à 0.

Exécutez le scénario de test et il devrait réussir.

Après les articles ci-dessus, nous pouvons enfin réaliser un travail de développement significatif. L'étape suivante consiste à mettre en œuvre toute la logique métier d'enregistrement des utilisateurs, ainsi qu'à traiter les situations anormales, telles que la répétition d'un nom d'utilisateur. Après avoir terminé toutes ces fonctions, nous devons également effectuer des tests de bout en bout, ce qui implique des tests d'enregistrement via les pages JSP.

Ce qui précède est le contenu du nouveau mouvement Java : développement piloté par les tests 3 --- enregistrement des utilisateurs 4. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal