Java Reference
In-Depth Information
try {
conn = dataSource.getConnection();
conn.setAutoCommit(false);
sqlMapClient.setUserConnection(conn);
Person p =
(Person)sqlMapClient.queryForObject
("getPerson", new Integer(9));
p.setLastName("Smith");
sqlMapClient.update("updatePerson", p);
Department d =
(Department)sqlMapClient.queryForObject
("getDept", new Integer(3));
p.setDepartment(d);
sqlMapClient.update("updatePersonDept", p);
conn.commit();
} finally {
sqlMapClient.setUserConnection(null);
if (conn != null) conn.close();
}
}
The second way is to use openSession (Connection) . This is the preferred
approach, because i BATIS can do a better job of resource management. Listing 7.7
shows how this is done with openSession() .
Listing 7.7
Custom transaction control with openSession()
public void runStatementsUsingSetUserConnection() {
SqlMapClient sqlMapClient =
SqlMapClientConfig.getSqlMapClient();
Connection conn = null;
SqlMapSession session = null;
try {
conn = dataSource.getConnection();
conn.setAutoCommit(false);
session = sqlMapClient.openSession(conn);
Person p =
(Person) session .queryForObject("getPerson",
new Integer(9));
p.setLastName("Smith");
session .update("updatePerson", p);
Department d =
(Department) session .queryForObject
("getDept", new Integer(3));
p.setDepartment(d);
session .update("updatePersonDept", p);
Search WWH ::




Custom Search