利用单例对hibernate进行优化成模板

 

利用单列来优化代码,实现对数据库数据的插入

首先写一个java映射类:将来这个用来生成一个表

packagecom.fish.hibernate.domain;

 

public class User {

    private int id;

privateString name;

private  String address;

public int getId() {

    return id;

}

public void setId(int id) {

    this.id = id;

}

publicString getName() {

    return name;

}

public void setName(String name) {

    this.name = name;

}

publicString getAddress() {

    return address;

}

public void setAddress(String address) {

    this.address = address;

}

 

}

2.写一个关联表的xml  利用该类来映射创建一个表

<?xmlversion="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/HibernateMapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping

    package="com.fish.hibernate.domain">

 

    <class name="User" >

        <id name="id">

            <generator class="native"/>

        </id>

        <property name="name"/>

        <property name="address"/>

    </class>

   

</hibernate-mapping>

 

3.利用配置xml来关联数据库

<!DOCTYPE hibernate-configuration PUBLIC

    "-//Hibernate/HibernateConfiguration DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 

<hibernate-configuration>

    <session-factory >

        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

 

        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property>

 

        <property name="connection.username">root</property>

 

        <property name="connection.password">330127</property>

        <property name="hbm2ddl.auto">create</property>//利用类在数据库建表

        <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>

        //这个是mysql的方言

        <mapping resource="com/fish/hibernate/domain/User.hbm.xml"/>

//对上面的xml进行关联

    </session-factory>

   

</hibernate-configuration>

 

4.用单例写一个模板类。

packagecom.fish.hibernate.util;

 

importorg.hibernate.Session;

importorg.hibernate.SessionFactory;

importorg.hibernate.cfg.Configuration;

 

public class HibernateTools {

    private static SessionFactory sessionFactory;

    private HibernateTools() {

    }//将构造方法初始化私有

 

    static {//在静态域里面加载,(在构造之前)而且只加载一次。

        Configuration configuration = new Configuration();

        configuration.configure();

        sessionFactory = configuration.buildSessionFactory();//使其得到会话工

 

    }

 

    public static SessionFactory getSessionFactory(){

        return sessionFactory;

    }

 

    public static Session getSession(){

        return sessionFactory.openSession();

    }

}

4.一个测试类:

packagecom.fish.hibernate.util;

 

importorg.hibernate.Session;

importorg.hibernate.Transaction;

 

importcom.fish.hibernate.domain.User;

 

public class Test {

    public static void main(String[] args) {

 

        Session session = null;

        Transaction taTransaction = null;

        try {

            session = HibernateTools.getSession();

            User user = new User();

            user.setName("中国");

            user.setAddress("亚洲");

 

            taTransaction = session.beginTransaction();

            session.save(user);

            taTransaction.commit();

            session.close();

           

        }finally{

            if(session!=null){

                session.close();

               

            }

        }

       

 

    }

}

 

以后对数据的添加只要改这个类的user对象就行了。

这个代码以后大家可以当模板使用!!

 

本文由 土豆粉培训网转载发布,转载请注明,谢谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值