2013-04-26 51 views
1

我是HSQLDB的新手,並且使用Spring Application與JavaConfig一起工作。我想我的示例設置內存數據庫(HSQLDB)並插入一行。HSQLDB的新功能與JavaConfig一起使用Spring應用程序

我想我有我的東西,所有的順序,但我不知道在哪裏創建數據庫和表。

下面是我main.app代碼

public class MainApp 
{ 

    private static final Logger LOGGER = getLogger(MainApp.class); 

    @Autowired 
    protected MessageService mService; 

    public static void main(String[] args) 
    { 
     ApplicationContext context = new AnnotationConfigApplicationContext(HelloWorldConfig.class); 
     HelloWorld helloWorld = context.getBean(HelloWorld.class); 

     LOGGER.debug("Message from HelloWorld Bean: " + helloWorld.getMessage()); 

     /** 
     * I removed the following line... we are now using log4j 
     */ 
     //System.out.println(helloWorld.getMessage()); 

     helloWorld.setMessage("I am in Staten Island, New York"); 

     /** 
     * I removed the following line... we are now using log4j 
     */ 
     //System.out.println(helloWorld.getMessage()); 
     LOGGER.debug("Message from HelloWorld Bean: " + helloWorld.getMessage()); 
    } 

,這裏是我的DatabaseConfig.class

public class DatabaseConfig 
{ 

    private static final Logger LOGGER = getLogger(DatabaseConfig.class); 


    @Autowired 
    Environment env; 

    @Bean 
    public DataSource dataSource() { 
     EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); 
     return builder.setType(EmbeddedDatabaseType.HSQL).build(); 
    } 

    @Bean 
    public SessionFactory sessionFactory() 
    { 

     LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean(); 
     factoryBean.setDataSource(dataSource()); 
     factoryBean.setHibernateProperties(getHibernateProperties()); 
     factoryBean.setPackagesToScan(new String[]{"com.xxxx.model"}); 

     try 
     { 
      factoryBean.afterPropertiesSet(); 
     } catch (IOException e) 
     { 
      LOGGER.error(e.getMessage()); 
      e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. 
     } 


     return factoryBean.getObject(); 
    } 

    @Bean 
    public Properties getHibernateProperties() 
    { 
     Properties hibernateProperties = new Properties(); 

     hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); 
     hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql")); 
     hibernateProperties.setProperty("hibernate.use_sql_comments", env.getProperty("hibernate.use_sql_comments")); 
     hibernateProperties.setProperty("hibernate.format_sql", env.getProperty("hibernate.format_sql")); 
     hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); 

     hibernateProperties.setProperty("hibernate.generate_statistics", env.getProperty("hibernate.generate_statistics")); 

     hibernateProperties.setProperty("javax.persistence.validation.mode", env.getProperty("javax.persistence.validation.mode")); 

     //Audit History flags 
     hibernateProperties.setProperty("org.hibernate.envers.store_data_at_delete", env.getProperty("org.hibernate.envers.store_data_at_delete")); 
     hibernateProperties.setProperty("org.hibernate.envers.global_with_modified_flag", env.getProperty("org.hibernate.envers.global_with_modified_flag")); 

     return hibernateProperties; 
    } 

    @Bean 
    public HibernateTransactionManager hibernateTransactionManager() 
    { 
     HibernateTransactionManager htm = new HibernateTransactionManager(); 
     htm.setSessionFactory(sessionFactory()); 
     htm.afterPropertiesSet(); 
     return htm; 
    } 

,但我不知道在哪裏數據庫創建以及如何插入我的表在我的項目運行之前?

您可以在下面的下載源代碼: https://github.com/JohnathanMarkSmith/HelloSpringJavaBasedJavaConfig/issues/1

+0

可能重複。我沒有看到數據庫啓動?](http://stackoverflow.com/questions/16240079/new-to-hsqldb-working-with-spring-application-with-javaconfig-i-dont-see-databa) – fglez 2013-04-30 10:20:21

回答

相關問題