Javaの基礎(5)C言語とJavaとでは大分違いますが、どちらが好みですか?
ファイル分割
- テキストエディタで dba.java を作成する
/******************************************************************
* 主処理
*/
public class dba{
public static void main(String[] sArg) {
if( dbLogin.login() ){
if( sArg.length>0 ){
dbIns.ins( sArg[0] );
}
dbList.list();
dbLogout.logout();
}
}
} |
- テキストエディタで dbLogin.java を作成する
/******************************************************************
* 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);
}
} |
- テキストエディタで dbIns.java を作成する
/******************************************************************
* データ登録処理
*/
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);
}
} |
- テキストエディタで dbList.java を作成する
/******************************************************************
* データ抽出処理
*/
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);
}
} |
- テキストエディタで dbLogout.java を作成する
/******************************************************************
* 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);
}
} |
- ソースファイルをコンパイルする
$ javac dba.java dbLogin.java dbIns.java dbList.java dbLogout.java
- javaプログラムを起動する
$ java -cp .:/usr/local/lib/postgresql.jar dba
Makefile
- テキストエディタで dba.java に追記する
/******************************************************************
* 主処理
*/
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();
}
}
} |
- テキストエディタで dbLogin.java に追記する
/******************************************************************
* 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);
}
} |
- テキストエディタで dbIns.java に追記する
/******************************************************************
* データ登録処理
*/
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);
}
} |
- テキストエディタで dbList.java に追記する
/******************************************************************
* データ抽出処理
*/
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);
}
} |
- テキストエディタで dbLogout.java に追記する
/******************************************************************
* 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);
}
} |
- テキストエディタで dba.mk を作成する
### 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 . $< |
- テキストエディタで dba.mf を作成する
Main-Class: example.dba.dba
Class-Path: /usr/local/lib/postgresql.jar |
- makeする
$ make -f dba.mk
- Jarプログラムを起動する
$ java -jar dba.jar Message!
|