「Java入門」hibernateでmysql procedureを呼び出して特定カラムを検索する

Javaコード下記:
1. procedure
CREATE PROCEDURE `getNameById`(in id integer(11),out eName varchar(50))
begin
select empName into eName from emp where empId=id;
end;

2.procedureを呼び出すサンプルプログラム

package com.startnews24;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class CallProcedure_test {

public static void main(String[] args) throws SQLException {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Connection conn = session.connection();
String sql = “{call getNameById(?,?)}";
CallableStatement cs = conn.prepareCall(sql);
cs.setObject(1, 3); //出力パラメータを設定
cs.registerOutParameter(2, java.sql.Types.VARCHAR); //2番目のパラメータを出力パラメータである
cs.execute(); //プロシージャを呼び出す
String name = cs.getString(2);//出力パラメータを取得する
System.out.println(name);
}
}

Java

Posted by arkgame