programing

최대 절전 모드 자동 생성 데이터베이스

oldcodes 2023. 9. 16. 09:52
반응형

최대 절전 모드 자동 생성 데이터베이스

저는 Java EE Hibernate 프로젝트가 있으며 MySQL을 데이터베이스로 사용하고 있습니다.

처음 프로젝트를 실행할 때 데이터베이스가 자동으로 생성되기를 원합니다.

이것은 나의hibernate.cnf.xml:

<?xml version='1.0' encoding='utf-8' ?>

<!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="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/InternetProject</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="connection.pool_size">10</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="show_sql">true</property>
        <mapping class="entities.Business" />
        <mapping class="entities.Coupon" />
        <mapping class="entities.User" />
        <mapping class="entities.LastLogin" />
    </session-factory>  
</hibernate-configuration>

이 프로젝트를 다른 컴퓨터에서 처음 실행할 때 데이터베이스를 만드는 방법은 무엇입니까?InternetProject창조될 것인가요?

config 파일에 의하면 이미 그렇게 되어 있을 수도 있고 나도 모르는 일입니다.

미리 감사드립니다.

<property name="hibernate.hbm2ddl.auto">create</property>테이블을 만듭니다.그러나 데이터베이스는 만들지 않습니다.연결 URL을 변경하여 데이터베이스를 생성합니다.

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/InternetProject?createDatabaseIfNotExist=true</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="connection.pool_size">10</property>

Update : 데이터베이스 작성 시 문자 인코딩

<property name="connection.url">
    jdbc:mysql://localhost/InternetProject?createDatabaseIfNotExist=true&useUnicode=yes&characterEncoding=UTF-8
</property>
<property name="hibernate.hbm2ddl.auto">create</property>

할 거다.

최대 절전 모드에서는 데이터베이스가 생성되지 않고 테이블만 생성됩니다.데이터베이스를 만들려면 MySQL이 URL에 매개 변수를 추가하여 존재하지 않는 경우 MySQL에 데이터베이스를 생성하도록 지시해야 합니다. 예:

jdbc:mysql://db:3306/mydatabase?createDatabaseIfNotExist=true

자동 속성에는 여러 가지 옵션이 있습니다.

  1. create - 매핑 또는 주석에 해당하는 새 테이블을 만듭니다.기존 테이블과 데이터를 삭제합니다.
  2. update - 기존 데이터 및 테이블을 유지합니다.스키마를 업데이트합니다.여기서 우리는 논쟁자들을 보살펴야 합니다.
  3. create-drop - create와 같지만 세션이 닫히면 모든 것이 삭제됩니다.
  4. validate - 스키마를 맵 또는 주석과 검증하거나 일치시킵니다.운영 환경에 적합합니다.

    <!-- create create-drop validate update -->
    <property name="hbm2ddl.auto">update</property>
    

도움이 되었으면 좋겠습니다.

언급URL : https://stackoverflow.com/questions/21069687/hibernate-auto-create-database

반응형