自分でよく使いそうな物をコピペで使える様にしてます。
すぐ忘れちゃうのでまた探したりするのが面倒…
という事でまとめました。
バージョンによっては書き方等は変わるかも知れませんが臨機応変に!
※日本語で書かれてるところは変える
目次以外の情報:【何から勉強すべき?】を解決!プログラミング勉強順序〜java〜
Java
Eclipse・Maven
エクリプスのインストール方法・設定・使い方はこちら
Bean
クラス名の横につけるインタフェース
implements java.io.Serializable
DAO
データベースと接続する
PostgreSQLの場合
private String className = "org.postgresql.Driver"; private String jdbcUrl = "jdbc:postgresql://localhost:5432/データベース名"; private String user = "ユーザー名"; private String passWord = "パスワード"; Connection con = null; public Connection connect() throws Exception { //JDBCドライバのロード Class.forName(className); //データベースに接続するためのコード return con= DriverManager.getConnection(jdbcUrl, user, passWord); }
MySQLの場合
private String className = "com.mysql.cj.jdbc.Driver"; private String jdbcUrl = "jdbc:mysql://localhost/データベース名"; private String user = "ユーザー名"; private String password = "パスワード"; Connection con = null; public Connection connect() throws Exception { //JDBCドライバのロード Class.forName(className); //データベースに接続するためのコード return con = DriverManager.getConnection(jdbcUrl,userId,userPass); }
※動的プロジェクトを作成した場合は「webContents」の中の「lib」の中に「jarファイル」を入れる
extendsDAO
SQL文を扱う
それぞれメソッドに纏める
select
データベース検索時に使う
public List<Beanクラス型> serch() throws Exception { Connection db = connect(); List<Beanクラス型> list = new ArrayList<Beanクラス型>(); PreparedStatement st = null; Beanクラス名 bean = null; st = db.prepareStatement("SQL文を記述;"); ResultSet rs = st.executeQuery(); while (rs.next()) { bean = new Bean(); /* データベースの内容による bean.setId(rs.getInt("カラム名")); bean.setText(rs.getString("カラム名")); */ list.add(bean); } st.close(); db.close(); return list; }
insert
データベースに登録時に使う
public synchronized int insert(String text) throws Exception { Connection db = connect(); PreparedStatement st = null; int line = 0; st = db.prepareStatement("SQL文を記述;"); /* SQLインジェクション(SQL文の内容による) st.setString(1, 仮引数); st.setInt(2,仮引数); */ line = st.executeUpdate(); st.close(); db.close(); return line; }
delete
update
tool
エンコーディング
@WebFilter(urlPatterns = { "/*" }) public class EncodingFilter implements Filter { public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) {} public void destroy() {} }
エスケープ
特殊文字を変換する
public static String htmlEscape(String str) { StringBuffer result = new StringBuffer(); for (char c : str.toCharArray()) { switch (c) { case '&': result.append("&"); break; case '<': result.append("<"); break; case '>': result.append(">"); break; case '"': result.append("""); break; case '\'': result.append("'"); break; case ' ': result.append(" "); break; default: result.append(c); break; } } return result.toString(); }
HTML
javaファイルでHTMLを使うときにメソッドを呼び出す
例:PrintWriter out = response.getWriter();のoutが実引数になる
public static void header(PrintWriter out) { out.println("<!DOCTYPE html> "); out.println("<html> "); out.println("<head> "); out.println("<meta charset='UTF-8'> "); out.println("<title></title> "); out.println("</head> "); out.println("<body> "); } public static void footer(PrintWriter out) { out.println("</body> "); out.println("</html> "); }
クラス
クラス作成する時のテンプレート
URLアノテーション
(パス)フォルダ名はJavaファイルにパラメーターが渡される場合はそのJSPやHTMLファイルがあるフォルダ名を記述
継承
HttpServletを継承する
doPost・doGetメソッド
使いたいメソッド名にするだけ
@WebServlet(urlPatterns = {"/フォルダ名/任意の文字列"}) class クラス名 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
インクルード・フォワード・リダイレクト
//インクルード request.getRequestDispatcher("パス").include(request, response); //フォワード request.getRequestDispatcher("パス").forward(request, response); //リダイレクト response.sendRedirect("パス");
セッション
//セッションを使う前に記述する HttpSession session = req.getSession(); //セッションを切断する sesstion.invalidate();
JSP
1行目に記述
<%@ page contentType="text/html; charset=UTF-8" %>
ファイルを読み込む
<%@ include file="パスとファイル名.拡張子" %>
ファイルをインポート
※複数インポートするファイルがある場合はカンマ区切りで続けて記述できる
<%@page import="フォルダ名.クラス名 , フォルダ名.クラス名" %>
ハッシュマップ
Map<String, String> map = new HashMap<>(); map.put("東京", "新宿"); request.setAttribute("list", map); //下のEL式使用の例で使う
EL式を有効化
<%@ page isELIgnored="false" %> //falseで有効化 trueで無効化
EL式使い方 例:上のハッシュマップを使ってる
・setAttributeでつけた名前等を使ってその中の値を取り出す
・HTMLの中に記述できる
<p>${ list.get("東京")}</p> //新宿が出力
php
XAMPPを使用
初めてのPHP【XAMPPのインストール方法~使い方まで解説】
【初めてのPHP】XAMPPでデータベースを作成【簡単手順書】
データベースに接続
XAMPPのMySQL
<?php //ライブラリの読み込み require_once 'vendor/autoload.php'; $dsn = 'mysql:dbname=データベース名;host=localhost'; $use = 'ユーザー名'; $password = 'パスワード'; try { $dbh = new PDO($dsn,$use,$password); $sql = 'SQL文'; foreach($dbh->query($sql) as $row) { /* データベースの値による $id = $row['カラム名']; $text = $row['カラム名']; */ } } catch(PDOException $e) { print('Error:'.$e->getMessage()); die(); } ?>