私は簡単なブログプロジェクトを書きました。ここでは、このブログプロジェクトのアイデアを要約します。
ログイン機能
まず、フロントエンドページを作成してログインページを実装し、ログインページから[ログイン]をクリックして、バックエンドの機能モジュールを見つけ、フロントエンドのログイン要求を確認し
ます。1。フロントから要求された情報に従って-end:ユーザー名とパスワード
2.バックエンドデータベースでユーザー名があるかどうかを確認します-ユーザー名はありません-プロンプト情報を返します。このユーザー名がある場合は、フロントエンドから送信されたパスワード情報のクエリを続行します待機するかどうかのデータベース内のパスワード情報。等しくない場合、ログインは失敗します。等しい場合、ログインに成功すると、対応するリソースにアクセスできます。そして、現在のユーザーのセッションを作成します。
このプロセスでは、フィルターインターフェイスを実装し、自分でフィルターを作成して、現在のパスを見つけます。既に内部リソースパスである場合は、直接下向きにアクセスできます。内部リソースパスでない場合は、リダイレクトする必要があります。ログインページへ。
データストレージ
データストレージは初期化データに格納されます。データを使用する場合は、データベースを確立する必要があります
。使用されるテクノロジは、データベースをJDBCに接続することです。
次のセクションで、このJDBC接続について説明します
。次の手順に分かれています。1。ドライバーを登録
するプロジェクトで使用されるデータベース接続プールデータソース
2.接続を確立する接続
c = DS.getConnection();
3. MySQLステートメント操作を作成して実行します。preparedStatementとstatementの
2つのオブジェクトを使用できます。
前者は、事前に設定されたプレースホルダーです。
4. MySQLステートメント(CRUD)
クエリの実行:executeQuery(String sql)またはexecuteQuery()
非クエリ操作(追加、削除、変更):executeUpdate()またはexecuteUpdate(String sql)
5。結果セット
クエリを返す操作:use受け取るresultSet();
非クエリ操作には戻り値があり、そのすべてがint型です。6
。リソースを
解放します。ResultSet、Statement(またはPreparedStatement)、およびConnectionオブジェクトを順番に解放します。解放順序は作成と逆です。順序(「スタック」構造に似ています)。また、接続はまれなリソースであり、使い果たされたらすぐに解放する必要があります。
新しいブログ
新しいブログを追加する主なアイデアは、データベースに接続した後、mySQL言語を使用してブログのコンテンツをデータベースに挿入することです。例外が発生した場合、
コードは次のようになります。
public static int insert(Article a) {
Connection c = null;
PreparedStatement ps = null;
try{
c = DBUtil.getConnection();
String sql = "insert into article(title, content, user_id)" +
" values (?, ?, ?)";
ps = c.prepareStatement(sql);
//替换占位符
ps.setString(1, a.getTitle());
ps.setString(2, a.getContent());
ps.setInt(3, a.getUserId());
return ps.executeUpdate();
}catch (Exception e){
throw new AppException("ART005", "新增文章操作出错", e);
}finally {
DBUtil.close(c, ps);
}
}
ブログを編集する
主なアイデアは、mySQL言語を使用してデータベースに接続した後、データベース内のブログコンテンツを変更することです。コードは次のとおりです。
public static int update(Article a) {
Connection c = null;
PreparedStatement ps = null;
try{
c = DBUtil.getConnection();
String sql = "update article set title=?, content=? where id=?";
ps = c.prepareStatement(sql);
//设置占位符
ps.setString(1, a.getTitle());
ps.setString(2, a.getContent());
ps.setInt(3, a.getId());
return ps.executeUpdate();
}catch (Exception e){
throw new AppException("ART007", "修改文章操作出错", e);
}finally {
DBUtil.close(c, ps);
}
}
ブログを削除する
ブログを削除するには、データベース接続に依存して、フロントエンドの送信に従ってデータベース内の記事を削除します
。
public static int delete(String[] split) {
Connection c = null;
PreparedStatement ps = null;
try{
c = DBUtil.getConnection();
StringBuilder sql = new StringBuilder("delete from article where id in (");
for(int i=0; i<split.length; i++){
if(i != 0)
sql.append(",");
sql.append("?");
}
sql.append(")");
ps = c.prepareStatement(sql.toString());
//设置占位符的值
for(int i=0; i<split.length; i++){
ps.setInt(i+1, Integer.parseInt(split[i]));
}
return ps.executeUpdate();
}catch (Exception e){
throw new AppException("ART004", "文章删除操作出错", e);
}finally {
DBUtil.close(c, ps);
}
}