实体类:
public class Users {
private int id;
private String username;
private String pwd;
public Users(){
}
public Users(String username, String pwd) {
this.username = username;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
hibernate映射文件:
<?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 package="com.zwk.orm">
<class name="Users" table="users">
<id name="id">
<generator class="native"/>
</id>
<property name="username"/>
<property name="pwd"/>
</class>
</hibernate-mapping>
使用HibernateTemplate模板的工具类:
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class HibernateTemplateImp {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public List<Users> create(final Users user){
HibernateTemplate hibernateTemplate=new HibernateTemplate(sessionFactory);
//使用回调接口
HibernateCallback<List<Users>> hibernateCallback=new HibernateCallback<List<Users>>(){
@Override
public List<Users> doInHibernate(Session session)
throws HibernateException, SQLException {
session.save(user);
Query query=session.createQuery("From Users");
List<Users> list=query.list();
return list;
}
};
List<Users> users=hibernateTemplate.execute(hibernateCallback);
return users;
}
}
Spring配置文件:
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="hibernateTemplateImp" class="com.zwk.orm.HibernateTemplateImp">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="mysql"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>com/zwk/orm/Users.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.show_sql=true
hibernate.hbm2ddl=update
</value>
</property>
</bean>
</beans>
测试代码:
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");
HibernateTemplateImp hibernateTemplateImp=(HibernateTemplateImp) applicationContext.getBean("hibernateTemplateImp");
Users user=new Users("1234","1234");
List<Users> users=hibernateTemplateImp.create(user);
for(Users u:users){
System.out.println(u.getUsername());
}
}
}