Hibernate 自带主键生成功能,当然也可以自定义生成主键
Hibernate 自定义生成主键主要要实现 org.hibernate.id.IdentifierGenerator接口。
之后便是书写代码:
public class UserGenerator implements IdentifierGenerator{
@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
//给connection赋值
Connection connection=session.connection();
try {
//编写SQL语句
PreparedStatement ps=connection.prepareStatement("select * from t_user");
//返回数据库数据
ResultSet rs=ps.executeQuery();
//进行判断
if(rs.next()) {
String id=rs.getString("user_name")+rs.getString("user_pwd");
//返回数据
return id;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
获取自己想要的ID数据。
之后便是HBM.XML文件的调用
代码如下:
<hibernate-mapping>
<class name="com.zking.entity.Users" table="t_user">
<id name="userID" type="java.lang.String">
<column name="user_id" />
<!-- 调用自定义主键 -->
<generator class="com.zking.generator.UserGenerator" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" />
</property>
<property name="userPwd" type="java.lang.String">
<column name="user_pwd" />
</property>
</class>
</hibernate-mapping>
调用后便能实现自己想要的ID数据。
如有不足之处还请多多指教!!!