JDBCのUpdateメソッド


4つのクラスを作成します:StuInfo(エンティティークラス)、DBConn(データベースの接続、閉じる)、DBUtil(データベース操作)、RunMain(テストクラス)
1.StuInfoエンティティークラス:
package com.lykion;

public class StuInfo {

	private String sno;
	private String sname;
	private String dname;
	private String ssex;
	private int cno;
	private double mark;
	private String type; 
	
	public StuInfo() {
		
	}
	
	public StuInfo(String sno, String sname, String dname, String ssex, int cno, double mark, String type) {
		super();
		this.sno = sno;
		this.sname = sname;
		this.dname = dname;
		this.ssex = ssex;
		this.cno = cno;
		this.mark = mark;
		this.type = type;
	}
	
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	
	public String getSsex() {
		return ssex;
	}
	public void setSsex(String ssex) {
		this.ssex = ssex;
	}
	
	public int getCno() {
		return cno;
	}
	public void setCno(int cno) {
		this.cno = cno;
	}
	
	public double getMark() {
		return mark;
	}
	public void setMark(double mark) {
		this.mark = mark;
	}
	
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
}

2.DBConnクラス、データベースに対する操作:データベースを開く(データベースを接続する)、操作が終わった後にデータベースを閉じる、資源を解放する
package com.lykion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConn {

	private static final String url = "jdbc:mysql://localhost:3306/test";		//     
	private static final String username = "root";		//      
	private static final String password = "123456";		//     
	private static final String driver = "com.mysql.jdbc.Driver";		//mysql  
	private static final Connection conn = null;
	
	/**
	 *      
	 * @return
	 */
	public static Connection conn() {
		Connection conn = null;
		try {
			Class.forName(driver);  //       
			try {
				conn = DriverManager.getConnection(url, username, password);  //     
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 *        
	 * @return
	 */
	public static void close() {
		if(conn != null) {
			try {
				conn.close();  //       
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

3.DBUtilクラス:主にデータのよく使う操作で、実例の中で主にUpdate操作を実現する
package com.lykion;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {

	private static Connection conn = null;
	private static PreparedStatement ps = null;
	private static ResultSet rs = null;
	
	public static void Update(StuInfo stu) {
		conn = DBConn.conn();		//   DBconnection    conn()        
		String sql = "UPDATE student01 SET sname=?, dname=?, ssex=?, cno=?, mark=?, type=? WHERE sno=?";		//sql  
		try {
			ps = conn.prepareStatement(sql);
			
			/**
			 *     sno  (  )    
			 * 1.            
			 * 2.sno           ,     
			 * 3.           
			 */
			ps.setString(1, stu.getSname());
			ps.setString(2, stu.getDname());
			ps.setString(3, stu.getSsex());
			ps.setInt(4, stu.getCno());
			ps.setDouble(5, stu.getMark());
			ps.setString(6, stu.getType());
			ps.setString(7, stu.getSno());
			
			ps.executeUpdate();
			
			System.out.println("    (* ̄︶ ̄)");
		} catch (SQLException e) {
			System.out.println("    o(╥﹏╥)");
			e.printStackTrace();
		}finally {
			DBConn.close();
		}
	}
}

4.RunMainクラス:テストクラス、DBUtilの方式が実現するかどうかをテストする
package com.lykion;

public class RunMain {

	public static void main(String[] args) {
		StuInfo stu = new StuInfo("9006", "    ", "          ", " ", 7, 89, "  ");
		DBUtil.Update(stu);	}
}