6 Hibernate를 Properties로 보완합니다.cfg.xml 설정
config.properties 파일의 내용은 다음과 같습니다.
# IP
dbhost = localhost
#
dbport=3306
#
dbuser = root
#
dbpw = 1234
#
dbname = test
hibernate.cfg.xml 파일에는 다음과 같은 데이터베이스 구성 정보가 없습니다.
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- ,
//<property name="hibernate.connection.url">jdbc:mysql:///test</property>
//<property name="hibernate.connection.username">root</property>
//<property name="hibernate.connection.password">1234</property>
-->
<mapping resource="dao/po/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
우리는 다음과 같이 함께 사용합니다.
package dao;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Properties;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* , session
*
*/
public class HibernateUtil
{
static SessionFactory sessionFactory = null;
static
{
try
{
final String path = URLDecoder.decode(Thread.currentThread().getContextClassLoader().getResource(
"config.properties").getPath(), "UTF-8"); //config.properties
final Properties properties = new Properties();
final InputStream fis = new FileInputStream(path); //config.properties , ,
properties.load(fis);
fis.close(); //
final String dbhost = properties.getProperty("dbhost"); // IP( config.properties )
final String dbport = properties.getProperty("dbport"); // ( config.properties )
final String dbname = properties.getProperty("dbname"); // ( config.properties )
final String dbuser = properties.getProperty("dbuser"); // ( config.properties )
final String dbpw = properties.getProperty("dbpw"); // ( config.properties )
final Properties extraProperties = new Properties();
extraProperties.setProperty("hibernate.connection.url", "jdbc:mysql://" + dbhost + ":" + dbport + "/"
+ dbname + "?zeroDateTimeBehavior=convertToNull");
extraProperties.setProperty("hibernate.connection.username", dbuser);
extraProperties.setProperty("hibernate.connection.password", dbpw);
final Configuration cfg = new Configuration();
cfg.addProperties(extraProperties);
cfg.configure("hibernate.cfg.xml"); //
sessionFactory = cfg.buildSessionFactory();
}
catch (final UnsupportedEncodingException e)
{
// 。
e.printStackTrace();
}
catch (final FileNotFoundException e)
{
//config.properties
e.printStackTrace();
}
catch (final HibernateException e)
{
//cfg.configure("hibernate.cfg.xml");
e.printStackTrace();
}
catch (final Exception e)
{
// SessionFactory
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
/**
* session
*
* @return session
*/
public static Session getSeesion()
{
return sessionFactory.openSession();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.