ホームページ > Java > &#&チュートリアル > 新しい Java の動き: テスト駆動開発 3---ユーザー登録 4

新しい Java の動き: テスト駆動開発 3---ユーザー登録 4

黄舟
リリース: 2016-12-30 13:17:15
オリジナル
1082 人が閲覧しました

データベース操作のインフラが完成したら、実際にJDBCデータ操作を実行します。関連するデータベース テーブルの ER 図は次のとおりです。

新しい Java の動き: テスト駆動開発 3---ユーザー登録 4

上の図に示すように、最初のステップは t_user テーブルにレコードを追加することです。ユーザー登録には複数のテーブルを操作する必要があるため、トランザクションを使用する必要があります。まず、簡単な JDBC ベースのトランザクション フレームワークを作成します。コードは次のとおりです。

@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;
	}
ログイン後にコピー

次に、具体的なユーザーの追加操作は次のとおりです。

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;
	}
ログイン後にコピー

返された userId が 0 より大きい場合のテスト ケースの成功条件。

テスト ケースを実行すると、テスト ケースに正常に合格するはずです。

上記の記事を読んだ後、ようやく有意義な開発作業を実行できるようになります。次のステップでは、すべてのユーザー登録ビジネス ロジックを実装し、もう 1 つのステップでは、userName が繰り返されるなどの異常な状況に対処します。これらの機能をすべて完了したら、JSP ページを介した登録テストを含むエンドツーエンド テストを実行する必要もあります。

上記は、新しい Java 運動: テスト駆動開発 3---ユーザー登録 4 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート