Tôi đang phát triển một ứng dụng java web và tôi sử dụng Tomcat kết nối tổng hợp, đây là thiết lập của tôi:có thể sử dụng Hibernate và Tomcat Connection pool cùng một lúc không?
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/jdbcPool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="*******"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dbname?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8"/>
</Context>
và DAO tôi:
public static Connection dbConnection() throws NamingException {
Context initContext;
DataSource ds = null;
Connection conn = null;
try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/jdbcPool");
conn = ds.getConnection();
}catch (SQLException ex){
logger.error("SQLException Occurred in DAO.dbConnection() Method, Exception Message is: " + ex.getMessage(), ex);
}
catch (RuntimeException er){
logger.fatal("SQLException Occurred in DAO.dbConnection() Method, Exception Message is: " + er.getMessage(), er);
}catch(Exception rt){
logger.fatal("Exception Occurred in DAO.dbConnection() Method, Exception Message is: " + er.getMessage(), er);
}
return conn;
}
Tôi muốn sử dụng chế độ ngủ đông nên tôi refactor một số phần của mã của tôi, bây giờ tôi muốn biết là nó có thể cho tôi chúng tôi sử dụng cả hai trong ứng dụng của tôi (tôi có nghĩa là một số phần của mã của tôi sử dụng hibernate và một số phần sử dụng kết nối DAO của tôi?) Nếu có, điều gì sẽ xảy ra với những bảng mà không ánh xạ với hibernate nhưng một số bảng ánh xạ có mối quan hệ với họ?
bạn có nghĩa là tôi bỏ qua cấu hình JNDI của tôi trong context.xml và khi tôi muốn Quering DB (không muốn sử dụng ngủ đông) có được một kết nối từ hibernate sessionFactory? sau đó hoạt động như một kết nối JDBC phổ biến? – Am1rr3zA
@gid Bạn có thể giải thích tại sao không? Hibernate cung cấp quản lý chuyển đổi riêng của nó (hoặc bạn sẽ sử dụng JTA) vậy tại sao bạn quan tâm khi kết nối được đóng lại - hay đúng hơn là, quay trở lại hồ bơi? Có vẻ như bạn chỉ tự làm rất nhiều những gì Hibernate sẽ làm cho bạn. Tui bỏ lỡ điều gì vậy? – ChssPly76
Tôi có nghĩa là bỏ qua các thiết lập kết nối (tức là tham chiếu JNDI và hoặc bất kỳ tham chiếu nào khác đến các kết nối từ cấu hình ngủ đông) –