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

使用Java和Hibernate优化数据库数据插入
本文介绍如何使用Java映射类、关联表的XML配置以及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对象就行了。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值