maven hibernate 实现对mysql简单的CRUD操作

来源:互联网 发布:pc28单双永久算法 编辑:程序博客网 时间:2024/06/07 19:37

目录结构如下图所示:


1.hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- hibernate的方言,用来确定连接的数据库 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 数据库的连接类 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 数据库的连接字符串和用户名密码 --><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/01hibernate</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">root</property><!-- 在使用hibernate时会显示相应的SQL --><property name="show_sql">true</property><!-- 会自动完成类到数据表的转换 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 加入实体类的映射文件 --><mapping resource="cn/sigangjun/hibernate/model/User.hbm.xml" /></session-factory></hibernate-configuration>

2.User.java

package cn.sigangjun.hibernate.model;import java.util.Date;/** * @author sigangjun * */public class User {private int id;private String username;private String password;private String nickname;private Date born;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;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public Date getBorn() {return born;}public void setBorn(Date born) {this.born = born;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + ", nickname=" + nickname + ", born=" + born + "]";}}

3.User.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.sigangjun.hibernate.model"><class name="User" table="t_user"><id name="id"><generator class="native" /></id><property name="username" /><property name="password" /><property name="nickname" /><property name="born" type="timestamp" /></class></hibernate-mapping>

4.HibernateUtil.java

package cn.sigangjun.hibernate.util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {private final static SessionFactory FACTORY = buildSessionFactory();private static SessionFactory buildSessionFactory() {Configuration cfg = new Configuration().configure();ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();SessionFactory factory = cfg.buildSessionFactory(serviceRegistry);return factory;}public static SessionFactory getSessionFactory() {return FACTORY;}public static Session openSession() {return FACTORY.openSession();}public static void close(Session session) {if(session!=null) session.close();}}

5.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.sigangjun</groupId><artifactId>02hibernate</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>02hibernate Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.25</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.2.6.Final</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency></dependencies><build><finalName>02hibernate</finalName></build></project>

6.测试代码:TestCRUD.java

package cn.sigangjun.hibernate.test;import java.text.SimpleDateFormat;import java.util.List;import org.hibernate.Session;import org.junit.Test;import cn.sigangjun.hibernate.model.User;import cn.sigangjun.hibernate.util.HibernateUtil;@SuppressWarnings("unchecked")public class TestCRUD {private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");@Testpublic void testAdd() {Session session = null;try {session = HibernateUtil.openSession();session.beginTransaction();User u = new User();u.setBorn(sdf.parse("1977-11-22"));u.setNickname("司刚军");u.setPassword("123");u.setUsername("sigangjun");session.save(u);session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();if (session != null)session.getTransaction().rollback();} finally {HibernateUtil.close(session);}}@Testpublic void testLoad() {Session session = null;try {session = HibernateUtil.openSession();User u = (User) session.load(User.class, 2);System.out.println(u);} catch (Exception e) {e.printStackTrace();} finally {HibernateUtil.close(session);}}@Testpublic void testUpdate() {Session session = null;try {session = HibernateUtil.openSession();session.beginTransaction();User u = (User) session.load(User.class, 2);u.setNickname("张小四");session.update(u);session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();if (session != null)session.getTransaction().rollback();} finally {HibernateUtil.close(session);}}@Testpublic void testDelete() {Session session = null;try {session = HibernateUtil.openSession();session.beginTransaction();User u = new User();u.setId(2);session.delete(u);session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();if (session != null)session.getTransaction().rollback();} finally {HibernateUtil.close(session);}}@Testpublic void testList() {Session session = null;try {session = HibernateUtil.openSession();List<User> users = session.createQuery("from User").list();for (User u : users) {System.out.println(u);}} catch (Exception e) {e.printStackTrace();} finally {HibernateUtil.close(session);}}@Testpublic void testPager() {Session session = null;try {session = HibernateUtil.openSession();List<User> users = session.createQuery("from User").setFirstResult(0).setMaxResults(2).list();for (User u : users) {System.out.println(u);}} catch (Exception e) {e.printStackTrace();} finally {HibernateUtil.close(session);}}}


原创粉丝点击