1. 流程图
|
2. 主要文件
3. User.java
package com.edu.ssh.model;
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table;
@Entity
@Table(name="tb_user") public class User { private int id; private String username; private String password;
@Id @GeneratedValue 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 getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
|
4. hibernate.cfg.xml
|
5. HibernateUtil
package com.edu.ssh.util;
import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil { private static SessionFactory sf; static {
sf = new AnnotationConfiguration().configure().buildSessionFactory(); }
public static SessionFactory getSessionFactory() { return sf; } }
|
6. UserManager.java
package com.edu.ssh.service;
import org.hibernate.Session; import org.hibernate.SessionFactory;
import com.edu.ssh.model.User; import com.edu.ssh.util.HibernateUtil; public class UserManager {
public boolean exists(User user) { SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.getCurrentSession(); session.beginTransaction(); long count = (Long) session.createQuery( "select count(*) from User u where u.username = :username") .setString("username", user.getUsername()).uniqueResult();
session.beginTransaction().commit();
if (count > 0) return true; return false; }
public void insertOneUser(User user) { // save in database SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.getCurrentSession(); session.beginTransaction(); session.save(user); session.beginTransaction().commit(); } }
|
7. UserManagerTest.java
package com.edu.ssh.service;
import static org.junit.Assert.*;
import org.junit.Before; import org.junit.Test;
import com.edu.ssh.model.User;
public class UserManagerTest {
private UserManager userManager = null;
@Before public void setUp() { userManager = new UserManager(); }
@Test public void testExists() { User user = new User(); user.setUsername("ee"); assertTrue("userManager.exists(user) 失败了!!", userManager.exists(user)); }
@Test public void testInsertOneUser() { User user = new User(); user.setUsername("username"); user.setPassword("password"); userManager.insertOneUser(user); }
}
|
8. 结果
|
|
9. 简单分析
在工程的dao层用hibernate实现,hibernate比起直接使用jdbc简化了很多,要写的代码比起jdbc少了很多很多,如果用jdbc实现,我们必须写很多重复的代码。当然使用jdbc性能比hibernate好很多。hibernate把jdbc封装了。我们只需对对象操作就可以了,不像使用jdbc直接对表结构操作。更接近人的思维。也是ssh整合进来的第一个框架。
更多关于Hibernate教程看看这里:
www.iteye.com/blogs/tag/Hibernate
版权声明:本文为博主原创文章,未经博主允许不得转载。