使用Hibernate设计通用接口实现对Java对象进行增查改删(CRUD)的工作;
具体要求:实现CRUD接口具有通用性;可以在已有项目中增加相应接口;
dao层
public interface GoodsDao {
public void add(Object object);
public void delete(Object object);
public Object get(Class clas,Integer id);
public void update(Object object);}
public class GoodsDaoImp extends HibernateDao implements GoodsDao {
@Override
public void add(Object object)
{
}
@Override
public void delete(Object object)
{
super.delete(object);
}
@Override
public void update(Object object)
{
super.update(object);
}
@Override
public Object get(Class clas,Integer id)
{
return super.get(clas, id);
}
}
public class HibernateUtil {
private static Configuration configuration;
private static SessionFactory sessionFactory=null;private HibernateUtil(){
}
public static SessionFactory getSessionFactory(){
if(sessionFactory==null) {
configuration=new Configuration();
configuration.configure();
sessionFactory=configuration.buildSessionFactory();
}
return sessionFactory;
}
public static Session getSession(){
return getSessionFactory().openSession();
}
public static void main(String []args){
System.out.println(getSession());
}
}
//添加
try
{
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.save(object);
transaction.commit();
session.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
//查询
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
object=session.get(clas,id);
transaction.commit();
session.close();
}catch(Exception e)
{
e.printStackTrace();
}
return object;
}
//删除
try
{
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.delete(object);
transaction.commit();
session.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
//修改
try
{
session = HibernateUtils.getSession();
transaction = session.beginTransaction();
session.update(object);
transaction.commit();
session.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
pojo
import java.util.HashSet;
import java.util.Set;
public class Goods {
private int bid;
private String company_name;
private Set<User>user=new HashSet<User>();
public int getBid() {
return bid;
}
public void setBid(int bid) {
this.bid = bid;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public Set<User> getUser() {
return user;
}
public void setUser(Set<User> user) {
this.user = user;
}
@Override
public String toString() {
return "goods [bid=" + bid + ", company_name=" + company_name + ", user=" + user + ", getBid()=" + getBid()
+ ", getCompany_name()=" + getCompany_name() + ", getUser()=" + getUser() + ", getClass()=" + getClass()
+ ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]";
}
}
public class Product {
private int gid;
private String gname;
private String gaddress;
private String gdata;
private Sequence sequence;
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public String getGaddress() {
return gaddress;
}
public void setGaddress(String gaddress) {
this.gaddress = gaddress;
}
public String getGdata() {
return gdata;
}
public void setGdata(String gdata) {
this.gdata = gdata;
}
public Sequence getSequence() {
return sequence;
}
public void setSequence(Sequence sequence) {
this.sequence = sequence;
}
public String toString(){
return "User [gid="+gid+"gdata,="+gdata+",gaddress="+gaddress+",oid="+sequence+"]";
}
}
public class User {
private int uid;
private String uname;
private int uage;
private String usex;
private String ucity;
private Set<Sequence>sequence=new HashSet<Sequence>();
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public int getUage() {
return uage;
}
public void setUage(int i) {
this.uage = i;
}
public String getUsex() {
return usex;
}
public void setUsex(String usex) {
this.usex = usex;
}
public String getUcity() {
return ucity;
}
public void setUcity(String ucity) {
this.ucity = ucity;
}
public Set<Sequence> getSequence() {
return sequence;
}
public void setOrder(Set<Sequence> sequence) {
this.sequence = sequence;
}
public String toString(){
return "User [id="+uid+",uname="+uname+",age="+uage+",sex="+usex+",city="+ucity+"]";
}
}
User.hbm.xml
<?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" >
<hibernate-mapping>
<class name="com.entity.User" table="t_user2">
<id name="uid" column="uid">
<generator class="native"/>
</id>
<property name="uname" column="uname" type="string"/>
<property name="uage" column="uage" />
<property name="usex" column="usex" type="string"/>
<property name="ucity" column="ucity" type="string"/>
<set name="order">
<key column="oid"/>
<one-to-many class="pojo。Sequence"/>
</set>
</class>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<!-- <property name="hbm2ddl.auto">update</property>-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">此处输入自己数据库的密码</property>
<property name="format_sql">true</property>
<mapping resource="com/entity/User.hbm.xml"/>
<mapping resource="com/entity/Order.hbm.xml"/>
<mapping resource="com/entity/Goods.hbm.xml"/>
<mapping resource="com/entity/Business.hbm.xml"/>
</session-factory>
</hibernate-configuration>
还有log4j.properties
将orm框架应用于项目中,基于Hibernate实现增删改查的功能,掌握Hibernate的主要接口使用;设计持久化接口的基本方法;熟悉提高Hibernate使用性能的方法,更加能够综合运用hibernate。