My部品 【java】【php】

スポンサーリンク

自分でよく使いそうな物をコピペで使える様にしてます。

すぐ忘れちゃうのでまた探したりするのが面倒…

という事でまとめました。

バージョンによっては書き方等は変わるかも知れませんが臨機応変に!

※日本語で書かれてるところは変える

目次以外の情報:【何から勉強すべき?】を解決!プログラミング勉強順序〜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("&amp;");
				break;
			case '<':
				result.append("&lt;");
				break;
			case '>':
				result.append("&gt;");
				break;
			case '"':
				result.append("&quot;");
				break;
			case '\'':
				result.append("&#39;");
				break;
			case ' ':
				result.append("&nbsp;");
				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();
  }
?>