使用hibernate查询数据库时,如果表名是需要根据输入来确定,那么在映射文件里的表名应该怎么写?
你的hibernate,cfg.xml 里面要连接到本地数据库的数据库名。这个是你自己定义的。、
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/数据库名</property>
<property name="connection.username">账号</property>
<property name="connection.password">密码</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">mysql</property>
<!-- <property name="session_factory_name">java:com/uucun/hibernateFactotry/HIbernateSessionFactory</property> -->
<mapping resource="com/uucun/bean/表名1.hbm.xml" />
<mapping resource="com/uucun/bean/表名2.hbm.xml" />
<mapping resource="com/uucun/bean/表名3.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我没表达清楚,您的这个事hibernate的配置文件,我想问的是实体所对应的映射文件,在映射文件里要写表名,但是表名是根据其他输入值来确定,那么映射文件里的表名应该怎么写。
Name.hbm.xml
<?xml
version="1.0" encoding="utf-8" ?>
<!DOCTYPE
hibernate-mapping (View Source for full doctype...)>
- <!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
- <hibernate-mapping default-cascade="none"
default-access="property" default-lazy="true"
auto-import="true">
- <class name="表的位置(表名首字母大写)如com.ssh.bean.Name" table="name" catalog="数据库名"
mutable="true" polymorphism="implicit" dynamic-update="false"
dynamic-insert="false" select-before-update="false"
optimistic-lock="version">
- <id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
- <property name="username"
type="java.lang.String" unique="false"
optimistic-lock="true" lazy="false"
generated="never">
<column name="username"
length="45" />
</property>
</class>
</hibernate-mapping>
如上可以映射到比如一个数据库名字是ssh,表名是name里面的Name就是你实体化的类,就是将首字母大写。将里面的column进行实例化成元素。
然后写一个具体的Name类就可以调用这个数据库的这张张表了。