实现步骤:
- 查看项目的applicationContext.xml配置文件,我的如下:
从上面的代码可以看出数据库使用的是MySQL,<prop key="hibernate.show_sql">true</prop>表示在执行数据库操作的时候,会在控制台打印出执行的sql语句。<prop key="hibernate.hbm2ddl.auto">update</prop>表示在加载配置文件的时候自动更新数据库中的表,如果没有就会创建数据库中的表(前提是你的数据库已经建立,没建立的可以根据你项目使用的数据库系统自己建立一个。例如我使用的是MySQL数据库,则只需要在navicat中新建一个与我项目使用的数据库db_dianbo同名的就可以了)<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <span style="color: rgb(255, 0, 0);"><property name="url" value="jdbc:mysql://localhost:3306/db_dianbo?useUnicode=true&amp;amp;amp;amp;characterEncoding=utf-8"> </property></span> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <span style="color:#ff0000;"><prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop</span>> <span style="color:#ff0000;"><prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop></span> </props> </property>
新建一个java类CreateDBTable.java,来生成数据库中的表,如下(此代码参照于互联网):
注意:applicationContext.xml需要在src目录下,上述代码红色部分才能直接写这样的相对路径。如果在WEB-INF下可以先复制一份在src待生成数据库后再删除它,这样比较方便。import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.orm.hibernate3.LocalSessionFactoryBean; public class CreateDBTable { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub <span style="color:#ff0000;">ClassPathResource ac = new ClassPathResource("applicationContext.xml");</span> XmlBeanFactory xbf = new XmlBeanFactory(ac); //注意: &sessionFactory ,一定要包含 & ,不加Spring返回的是Hibernate下的SessionFactoryImpl类 LocalSessionFactoryBean lsfb=(LocalSessionFactoryBean) xbf.getBean("&sessionFactory"); Configuration cfg=lsfb.getConfiguration(); SchemaExport export=new SchemaExport(cfg); export.create(true, false); } }
- 只需要执行一下步骤2中的代码就能生成数据库中的表了。
- 注意事项:如果你的项目是别人给你或在网上下的,只有项目没有数据库,然后项目使用的数据库你的电脑上又没有,或你的版本不支持项目使用的数据库(例如:项目给了你数据库文件但是是SqlServer2000生成的,而你的电脑使用的是SqlServer2012这些比较新的数据库。2000生成的数据库文件时不能附加在2012上的。这时,也可以参照后面提到的例子中的方法把数据库换成MySQL的)。比如:你的电脑只有MySQL,而项目上使用的是SqlServer,这种情况你只需要更改applicationContext.xml文件中配置数据库的那部分代码,把它换成MySQL的配置就可以了。