package jodd.db.oom;
import jodd.db.DbCallResult;
import jodd.db.DbQuery;
import jodd.db.DbSession;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class CallableTest extends DbBaseTest {
public class PostgreSql extends PostgreSqlDbAccess {
@Override
public String getCreateTableSql() {
return "create table TESTER (" +
"ID SERIAL," +
"NAME varchar(20) NOT NULL," +
"VALUE integer NULL," +
"primary key (ID)" +
')';
}
@Override
public String getTableName() {
return "TESTER";
}
}
@Test
public void testCallableStatement() {
DbBaseTest.DbAccess db = new PostgreSql();
init();
db.initDb();
connect();
db.createTables();
try {
test();
} finally {
db.close();
}
}
private void test() {
DbSession session = new DbSession();
DbQuery dbQuery = new DbQuery(session, "{ :upp = call upper( :str ) }");
dbQuery.setString("str", "some lowercase value");
dbQuery.outString("upp");
DbCallResult r = dbQuery.executeCall();
assertEquals("SOME LOWERCASE VALUE", r.getString("upp"));
session.closeSession();
}
}