hibernate 的简单创建
hibernate.cfg.xml<?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"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="hbm2ddl.auto">update</property><property name="dialect">org.hibernate.dialect.DB2Dialect</property><property name="connection.url">jdbc:db2://192.168.25.230:50000/JSAMPLE</property><property name="connection.username">zyl</property><property name="connection.password">123</property><property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property><property name="myeclipse.connection.profile">zyl</property> <mapping resource="com/zyl/po/UsersPO.hbm.xml" /></session-factory></hibernate-configuration>-------------------------------------------------------------------------------------------UsersPO.javapackage com.zyl.po;import java.io.Serializable;import java.util.Date;public class UsersPO implements Serializable{/** **/private Long usersID;private String username;private String userpassword;private Date regDate;public Long getUsersID() {return usersID;}public void setUsersID(Long usersID) {this.usersID = usersID;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpassword() {return userpassword;}public void setUserpassword(String userpassword) {this.userpassword = userpassword;}public Date getRegDate() {return regDate;}public void setRegDate(Date regDate) {this.regDate = regDate;}public UsersPO(String username, String userpassword, Date regDate) {super();this.username = username;this.userpassword = userpassword;this.regDate = regDate;}}-------------------------------------------------------------------------------------------UsersPO.hbm.xml<?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.zyl.po" schema="zyl"> <class name="UsersPO" table="zylUsers"><id column="usersID" name="usersID" type="long"> <generator class="sequence"> <param name="sequence">users_seq</param> </generator></id><property name="username" type="string"/><property name="userpassword" type="string"/><property name="regDate" type="date"/> </class> <database-object><create><!]></create><drop></drop><dialect-scope name="org.hibernate.dialect.DB2Dialect"/> </database-object></hibernate-mapping>-------------------------------------------------------------------------------------------UsersDAO.javapackage com.zyl.dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import com.zyl.factory.HibernateSessionFactory;import com.zyl.po.UsersPO;public class UsersDAO {public void saveUser(UsersPO usersPO){Session session = HibernateSessionFactory.getSession();Transaction trans = session.beginTransaction();session.save(usersPO);trans.commit();session.close();}public UsersPO findUsersById(Long id){Session session = HibernateSessionFactory.getSession();Transaction trans = session.beginTransaction();UsersPO usersPO=(UsersPO)session.load(com.zyl.po.UsersPO.class, id);trans.commit();session.close();return usersPO;}public List<UsersPO> findAllUsersPO(){Session session = HibernateSessionFactory.getSession();Transaction trans = session.beginTransaction();Query query = session.createQuery("select u from UsersPO u order by u.usersID desc");List<UsersPO> usersList = query.list();trans.commit();session.close();return usersList;}public void updateUsersPO(UsersPO usersPO){ Session session = HibernateSessionFactory.getSession();Transaction trans = session.beginTransaction();session.update(usersPO);trans.commit();session.close(); } public void deleteUsersPO(UsersPO usersPO){ Session session = HibernateSessionFactory.getSession();Transaction trans = session.beginTransaction();session.delete(usersPO);trans.commit();session.close(); }}-------------------------------------------------------------------------------------------package com.ascent.dao.test;import java.util.List;import junit.framework.Assert;import org.junit.Test;import com.ascent.dao.UsersDAO;import com.ascent.po.UsersPO;public class UsersDAOTestCase {///@Testpublic void testSaveUsers() {UsersPO usersPO = new UsersPO("zyl","123",new java.util.Date());UsersDAO usersDAO = new UsersDAO();usersDAO.saveUsers(usersPO);Assert.assertNotNull("插入失败",usersPO.getUsersID());System.out.println(usersPO.getUsersID());}//@Testpublic void testFindUsersPOById(){UsersDAO usersDAO = new UsersDAO();UsersPO usersPO = usersDAO.findUsersById(2L);Assert.assertNotNull("查询失败",usersPO);System.out.println(usersPO.toString());}//@Testpublic void testFindAllUsersPO(){UsersDAO usersDAO = new UsersDAO();List<UsersPO> usersList = usersDAO.findAllUsersPO();Assert.assertNotNull(usersList);for (UsersPO usersPO : usersList) {System.out.println(usersPO);}}///@Testpublic void testUpdateUsersPO(){ UsersDAO usersDAO = new UsersDAO(); UsersPO usersPO = usersDAO.findUsersById(2L); Assert.assertNotNull("查询失败",usersPO); usersPO.setUsersName("xyf"); usersDAO.updateUsersPO(usersPO); }@Testpublic void testDeleteUsersPO(){ UsersDAO usersDAO = new UsersDAO(); UsersPO usersPO = usersDAO.findUsersById(1L); Assert.assertNotNull("查询失败",usersPO); //usersPO.setUsersName("ddd"); usersDAO.deleteUsersPO(usersPO); }}-------------------------------------------------------------------------------------------HibernateSessionFactory.javapackage com.zyl.hiber.SessionFactory;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;/** * Configures and provides access to Hibernate sessions, tied to the * current thread of execution.Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */public class HibernateSessionFactory { /** * Location of hibernate.cfg.xml file. * Location should be on the classpath as Hibernate uses * #resourceAsStream style lookup for its configuration file. * The default classpath location of the hibernate config file is * in the default package. Use #setConfigFile() to update * the location of the configuration file for the current session. */ private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); privatestatic Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION;static { try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();} } private HibernateSessionFactory() { }/** * Returns the ThreadLocal Session instance.Lazy initialize * the <code>SessionFactory</code> if needed. * *@return Session *@throws HibernateException */ public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get();if (session == null || !session.isOpen()) {if (sessionFactory == null) {rebuildSessionFactory();}session = (sessionFactory != null) ? sessionFactory.openSession(): null;threadLocal.set(session);} return session; }/** *Rebuild hibernate session factory * */public static void rebuildSessionFactory() {try {configuration.configure(configFile);sessionFactory = configuration.buildSessionFactory();} catch (Exception e) {System.err.println("%%%% Error Creating SessionFactory %%%%");e.printStackTrace();}}/** *Close the single hibernate session instance. * *@throws HibernateException */ public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } }/** *return session factory * */public static org.hibernate.SessionFactory getSessionFactory() {return sessionFactory;}/** *return session factory * *session factory will be rebuilded in the next call */public static void setConfigFile(String configFile) {HibernateSessionFactory.configFile = configFile;sessionFactory = null;}/** *return hibernate configuration * */public static Configuration getConfiguration() {return configuration;}}-------------------------------------------------------------------------------------------ToDDL.javapackage com.zyl.util;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ToDDL {public static void main (String[] args) {Configuration configure= new Configuration();configure.configure("hibernate.cfg.xml");SchemaExport sc=new SchemaExport(configure);sc.create(true, true);}}-------------------------------------------------------------------------------------------log4j.propertieslog4j.rootLogger=DEBUG,A1log4j.appender.A1 = org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.TTCCLayout-------------------------------------------------------------------------------------------junit测试增删改查hibernate连DB2Zyl.java和Zyl.hbm.xml是由表ZYL是逆向工程生成的 DB Browser - 表(zyl) 右键 - Java src forder :/hibernateTest/src ,Java package:com.zyl.po - hibernate Reverse Engneering-选Create POJO和java data Object-Hibernate types 和 identity表zylusers 是正向生成的表里有userid,username,userpassword,regDate <mapping resource="com/zyl/po/UsersPO.hbm.xml" /> HibernateSessionFactory.java用myeclipse 自动生成hibernate 点项目名称--右键--MyEclipse--Add Hibernate Capabilities
页:
[1]