你可以直接用Myeclipse把hibernate的jar添加进来(右键工程名—》MyEclipse —》Add Hibernate Capabilities, 之后按照向导选择需要的jar就可以了),也可以自己手动添加。在章节里没有提及的文件都是不用修改的,你可以在前面的文章里看到它们的内容。
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;
}
}
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--
当spring也整合进来后这些文件都可放在spring的配置文件里。
hibernate.cfg.xml整个文件都不需要了,到时就可以删除了。
hibernate全部的配置都可交给spring管理。
-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/ssh</property>
<property name="connection.username">root</property>
<property name="connection.password">mysql123</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- Drop and re-create the database schema on startup
<property name="hbm2ddl.auto">update</property>
-->
<mapping class="com.edu.ssh.model.User"/>
</session-factory>
</hibernate-configuration>
package com.edu.ssh.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static SessionFactory sf;
static {
// 用到了hibernate的注解,所有要用这个类AnnotationConfiguration
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return sf;
}
}
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();
}
}
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);
}
}
在工程的dao层用hibernate实现,hibernate比起直接使用jdbc简化了很多,要写的代码比起jdbc少了很多很多,如果用jdbc实现,我们必须写很多重复的代码。当然使用jdbc性能比hibernate好很多。hibernate把jdbc封装了。我们只需对对象操作就可以了,不像使用jdbc直接对表结构操作。更接近人的思维。也是ssh整合进来的第一个框架。
更多关于Hibernate教程看看这里:www.iteye.com/blogs/tag/Hibernate
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载于:https://www.cnblogs.com/ubuntuvim/p/4796553.html