[10]JDBCは、ストアド・プロシージャを呼び出し、データを挿入してプライマリ・キーに戻る
3613 ワード
[10]JDBCは、ストアド・プロシージャを呼び出し、データを挿入してプライマリ・キーに戻る
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
public class PsTest {
/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
ps();
}
static void ps() throws SQLException {
Connection conn = null;
CallableStatement cs = null;// Statement
ResultSet rs = null;
try {
// 2.
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.
String sql = "{ call addUser(?,?,?,?) } ";//
cs = conn.prepareCall(sql);
cs.registerOutParameter(4, Types.INTEGER);
cs.setString(1, "ps name");
cs.setDate(2, new java.sql.Date(System.currentTimeMillis()));
cs.setFloat(3, 100f);
cs.executeUpdate();
int id = cs.getInt(4);
System.out.println("id=" + id);
} finally {
JdbcUtils.free(rs, cs, conn);
}
}
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class OtherApi {
/**
* @param args
* @throws SQLException
* @throws InterruptedException
*/
public static void main(String[] args) throws SQLException,
InterruptedException {
// int id = create();
// System.out.println("id:" + id);
read();
}
static void read() throws SQLException, InterruptedException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 2.
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// 4.
rs = st
.executeQuery("select id, name, money, birthday from user where id < 5");
// 5.
while (rs.next()) {
int id = rs.getInt("id");
System.out.println("show " + id + "...");
Thread.sleep(10000);
System.out.println(id + "\t" + rs.getObject("name") + "\t"
+ rs.getObject("birthday") + "\t"
+ rs.getObject("money"));
}
} finally {
JdbcUtils.free(rs, st, conn);
}
}
static int create() throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 2.
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.
String sql = "insert into user(name,birthday, money) values ('name2 gk', '1987-01-01', 400) ";
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);//
ps.executeUpdate();
rs = ps.getGeneratedKeys();//
int id = 0;
if (rs.next())
id = rs.getInt(1);//
return id;
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}