兩個class Db Jdbcmysql
package com;
import com.opensymphony.xwork2.ActionSupport;
public class Db extends ActionSupport {
/**
*
*/
private int id ;
private static final long serialVersionUID = 7562913232984175945L;
public String execute() {
Jdbcmysql j =new Jdbcmysql();
j.SelectTable1();
return SUCCESS;
}
}
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
public class Jdbcmysql {
private Connection con = null; // Database objects
// 連接object
private Statement stat = null;
// 執行,傳入之sql為完整字串
private ResultSet rs = null;
// 結果集
private PreparedStatement pst = null;
// 執行,傳入之sql為預儲之字申,需要傳入變數之位置
// 先利用?來做標示
private String dropdbSQL = "DROP TABLE User ";
private String createdbSQL = "CREATE TABLE User (" + " id INTEGER "
+ " , name VARCHAR(20) " + " , passwd VARCHAR(20))";
private String insertdbSQL = "insert into User(id,name,passwd) "
+ "select ifNULL(max(id),0)+1,?,? FROM User";
private String selectSQL = "select * from User ";
public Jdbcmysql() {
}
// 建立table的方式
// 可以看看Statement的使用方式
public void createTable() {
try {
stat = con.createStatement();
stat.executeUpdate(createdbSQL);
} catch (SQLException e) {
System.out.println("CreateDB Exception :" + e.toString());
} finally {
Close();
}
}
// 新增資料
// 可以看看PrepareStatement的使用方式
public void insertTable(String name, String passwd) {
try {
pst = con.prepareStatement(insertdbSQL);
pst.setString(1, name);
pst.setString(2, passwd);
pst.executeUpdate();
} catch (SQLException e) {
System.out.println("InsertDB Exception :" + e.toString());
} finally {
Close();
}
}
// 刪除Table,
// 跟建立table很像
public void dropTable() {
try {
stat = con.createStatement();
stat.executeUpdate(dropdbSQL);
} catch (SQLException e) {
System.out.println("DropDB Exception :" + e.toString());
} finally {
Close();
}
}
// 查詢資料
// 可以看看回傳結果集及取得資料方式
public void SelectTable() {
try {
stat = con.createStatement();
rs = stat.executeQuery(selectSQL);
System.out.println("ID\t\tName\t\tPASSWORD");
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t\t"
+ rs.getString("name") + "\t\t"
+ rs.getString("passwd"));
}
} catch (SQLException e) {
System.out.println("DropDB Exception :" + e.toString());
} finally {
Close();
}
}
public void SelectTable1() {
try {
// 註冊driver
DriverManager.registerDriver(new com.mysql.jdbc.Driver ());
con = DriverManager.getConnection(
"jdbc:mysql://106.187.38.21:3306/ewallet","tintin","tintin");
if(con!=null){
stat = con.createStatement();
rs = stat.executeQuery("SELECT * FROM transaction");
System.out.println("ID source_id source_id type ");
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t\t"
+ rs.getString("source_id") + "\t\t"
+ rs.getString("type"));
}
}else{
System.out.println("con=null");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 完整使用完資料庫後,記得要關閉所有Object
// 否則在等待Timeout時,可能會有Connection poor的狀況
private void Close() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stat != null) {
stat.close();
stat = null;
}
if (pst != null) {
pst.close();
pst = null;
}
} catch (SQLException e) {
System.out.println("Close Exception :" + e.toString());
}
}
/*
public static void main(String[] args) {
// 測看看是否正常
Jdbcmysql test = new Jdbcmysql();
test.dropTable();
test.createTable();
test.insertTable("yku", "12356");
test.insertTable("yku2", "7890");
test.SelectTable();
}
*/
}
沒有留言:
張貼留言