JR中央線・三鷹駅
南口 徒歩3分

[ 地図 ]
TOP 学習環境 SQL C言語 Java

 Javaの基礎(5)
    C言語とJavaとでは大分違いますが、どちらが好みですか?
ファイル分割
  1. テキストエディタで dba.java を作成する
  2. /******************************************************************
    *	主処理
    */
    public class dba{
    	public static void main(String[] sArg) {
    		if( dbLogin.login() ){
    			if( sArg.length>0 ){
    				dbIns.ins( sArg[0] );
    			}
    			dbList.list();
    			dbLogout.logout();
    		}
    	}
    }		

  3. テキストエディタで dbLogin.java を作成する
  4. /******************************************************************
    *	DB接続処理
    */
    import	java.sql.*;
    
    class dbLogin{
    	private static final String dbUrl	= "jdbc:postgresql://localhost/postgres";
    	private static final String dbUser	= "postgres";
    	private static final String dbPwd	= "pgAdmin";
    	public static Connection conn = null;
    
    	public static boolean login(){
    		try {
    			conn = DriverManager.getConnection( dbUrl, dbUser, dbPwd );
    		}catch(Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  5. テキストエディタで dbIns.java を作成する
  6. /******************************************************************
    *	データ登録処理
    */
    import	java.sql.*;
    
    class dbIns{
    	private static int	iCnt;
    
    	public static boolean ins( String sMsg ){
    		try{
    			PreparedStatement ps = dbLogin.conn.prepareStatement(
    				"insert into 伝言板(伝言) values(?)" );
    			ps.setString( 1, sMsg );
    			iCnt = ps.executeUpdate();
    			ps.close();
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  7. テキストエディタで dbList.java を作成する
  8. /******************************************************************
    *	データ抽出処理
    */
    import	java.sql.*;
    
    class dbList{
    	public static boolean list(){
    		try{
    			Statement stmt = dbLogin.conn.createStatement();
    			ResultSet rs = stmt.executeQuery(
    				"select * from 伝言板 order by 番号 desc limit 10;" );
    			while( rs.next() ){
    				System.out.println( 
    					rs.getInt("番号") + ") "
    					+ rs.getTimestamp("登録日") + " > "
    					+ rs.getString("伝言") );
    			}
    			rs.close();
    			stmt.close();
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  9. テキストエディタで dbLogout.java を作成する
  10. /******************************************************************
    *	DB切断処理
    */
    import	java.sql.*;
    
    class dbLogout{
    	public static boolean logout(){
    		try{
    			if( dbLogin.conn != null ){
    				dbLogin.conn.close();
    			}
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  11. ソースファイルをコンパイルする
  12. $ javac dba.java dbLogin.java dbIns.java dbList.java dbLogout.java

  13. javaプログラムを起動する
  14. $ java -cp .:/usr/local/lib/postgresql.jar dba
Makefile
  1. テキストエディタで dba.java に追記する
  2. /******************************************************************
    *	主処理
    */
    package example.dba;     ← 追記
    public class dba{
    	public static void main(String[] sArg) {
    		if( dbLogin.login() ){
    			if( sArg.length>0 ){
    				dbIns.ins( sArg[0] );
    			}
    			dbList.list();
    			dbLogout.logout();
    		}
    	}
    }		

  3. テキストエディタで dbLogin.java に追記する
  4. /******************************************************************
    *	DB接続処理
    */
    package example.dba;     ← 追記
    import	java.sql.*;
    
    class dbLogin{
    	private static final String dbUrl	= "jdbc:postgresql://localhost/postgres";
    	private static final String dbUser	= "postgres";
    	private static final String dbPwd	= "pgAdmin";
    	public static Connection conn = null;
    
    	public static boolean login(){
    		try {
    			conn = DriverManager.getConnection( dbUrl, dbUser, dbPwd );
    		}catch(Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  5. テキストエディタで dbIns.java に追記する
  6. /******************************************************************
    *	データ登録処理
    */
    package example.dba;     ← 追記
    import	java.sql.*;
    
    class dbIns{
    	private static int	iCnt;
    
    	public static boolean ins( String sMsg ){
    		try{
    			PreparedStatement ps = dbLogin.conn.prepareStatement(
    				"insert into 伝言板(伝言) values(?)" );
    			ps.setString( 1, sMsg );
    			iCnt = ps.executeUpdate();
    			ps.close();
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  7. テキストエディタで dbList.java に追記する
  8. /******************************************************************
    *	データ抽出処理
    */
    package example.dba;     ← 追記
    import	java.sql.*;
    
    class dbList{
    	public static boolean list(){
    		try{
    			Statement stmt = dbLogin.conn.createStatement();
    			ResultSet rs = stmt.executeQuery(
    				"select * from 伝言板 order by 番号 desc limit 10;" );
    			while( rs.next() ){
    				System.out.println( 
    					rs.getInt("番号") + ") "
    					+ rs.getTimestamp("登録日") + " > "
    					+ rs.getString("伝言") );
    			}
    			rs.close();
    			stmt.close();
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  9. テキストエディタで dbLogout.java に追記する
  10. /******************************************************************
    *	DB切断処理
    */
    package example.dba;     ← 追記
    import	java.sql.*;
    
    class dbLogout{
    	public static boolean logout(){
    		try{
    			if( dbLogin.conn != null ){
    				dbLogin.conn.close();
    			}
    		}catch( Exception e ){
    			e.printStackTrace();
    			return(false);
    		}
    		return(true);
    	}
    }		

  11. テキストエディタで dba.mk を作成する
  12. ### Define
    J_PATH=
    C_PATH=example/dba/
    CLASS_FILES=\
    	$(C_PATH)dbLogin.class \
    	$(C_PATH)dbIns.class \
    	$(C_PATH)dbList.class \
    	$(C_PATH)dbLogout.class \
    	$(C_PATH)dba.class
    
    ### Jarファイル作成
    dba.jar: $(CLASS_FILES) dba.mk dba.mf
    	jar cfvm dba.jar dba.mf $(C_PATH)*.class
    
    ### Javaコンパイル
    $(C_PATH)dbLogin.class:$(J_PATH)dbLogin.java
    	javac -d . $<
    
    $(C_PATH)dbIns.class:$(J_PATH)dbIns.java
    	javac -d . $<
    
    $(C_PATH)dbList.class:$(J_PATH)dbList.java
    	javac -d . $<
    
    $(C_PATH)dbLogout.class:$(J_PATH)dbLogout.java
    	javac -d . $<
    
    $(C_PATH)dba.class:$(J_PATH)dba.java
    	javac -d . $<		

  13. テキストエディタで dba.mf を作成する
  14. Main-Class: example.dba.dba
    Class-Path: /usr/local/lib/postgresql.jar		

  15. makeする
  16. $ make -f dba.mk

  17. Jarプログラムを起動する
  18. $ java -jar dba.jar Message!
Java(1) Java(2) Java(3) Java(4) Java(5)
Copyright© Ciapia IT Academy 2022.