使用SSH新建项目连接数据库的时候在hibernate的配置文件*.hbm.xml中会有schema,代码示例如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.hpsvse.film.yinhao.entity.Filminfo" table="FILMINFO" schema="al442">
<id name="filmid" type="java.math.BigDecimal">
<column name="FILMID" precision="22" scale="0" />
<generator class="increment" />
</id>
<many-to-one name="filmtype" class="com.hpsvse.film.yinhao.entity.Filmtype" fetch="select">
<column name="TYPEID" precision="22" scale="0" />
</many-to-one>
<property name="filmname" type="java.lang.String">
<column name="FILMNAME" length="10" />
</property>
<property name="actor" type="java.lang.String">
<column name="ACTOR" length="30" />
</property>
<property name="director" type="java.lang.String">
<column name="DIRECTOR" length="30" />
</property>
<property name="ticketprice" type="java.math.BigDecimal">
<column name="TICKETPRICE" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>
这段代码中<class name="com.hpsvse.film.yinhao.entity.Filminfo" table="FILMINFO" schema="al442">schema="al442"表示数据库的用户名。如果当前链接数据库的用户名称不是al442的话,实际操作中还是会用al442这个用户来操作。如果我们把a1442这个数据库的用户名改变了的话,那么项目运行的时候还是会查找操作a1442这个数据库,但是此时这个数据库已经不存在了,程序就会出错,查不到数据,所以我们通常情况下会在框架搭建好了之后删除schema="al442" 这部分代码以避免以后可能更改数据库用户名的时候出现异常,如果确定以后数据库用户名不作更改的话可以不作删除,但是建议删除此部分代码更为安全。