本文共 4815 字,大约阅读时间需要 16 分钟。
现将资料整理出来,过几天不要忘记了
1.启动java自带的数据库2.对关系表test进行对象化处理3.试创建类Test 向表插入一条数据4对对象化的表进行配置,配置Account.hbm.xml5.配置hibernate.cfg.xml进行ORMapping6.创建使用hibernate的类AccountTest[@more@]现将资料整理出来,过几天不要忘记了
1.启动java自带的数据库startHsql.bat内容如下:start java -classpath ../lib/hsqldb.jar org.hsqldb.Server 可以通过db brower查看相关信息,然后配置HSQL驱动----------------------driver:HSQLDB添加驱动libhsqldb.jarjdbc:hsqldb:hsql://localhosturl jdbc:hsqldb:hsql://localhostsaOK!------------------------------------------------------------创建表testid INTERGER PK AIname varchar 24insert into account(id,name) values (1,'marry');select * from accountcommit-------------------------------------------------------------2.对关系表test进行对象化处理
package com.test;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Account implements Serializable { /** 对象唯一标识 */ private Integer id; private String name; //~==========================constructor public Account() { } public Account(String name) { this.name = name; }//~==============================setter & getter
public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}3.试创建类Test 向表插入一条数据package com.test;import java.sql.Connection;
import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Test {
/**
* @param args */ public static void main(String[] args) throws Exception { //step1 load driver Class.forName("org.hsqldb.jdbcDriver");//step2 create connection Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "sa", "");//step3 prepare statement Statement stat = conn.createStatement(); stat.execute("insert into test(name) values('sunrey')");//step4 get resultset ResultSet rs = stat.executeQuery("select * from test"); while (rs.next()) {System.out.println("id="+rs.getString(1));} //step5 close...... rs.close(); stat.close(); conn.close(); }}
4.对对象化的表进行配置,配置文件Account.hbm.xml如下:
<?xml version="1.0" encoding="UTF-8"?>ttp://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >5.配置hibernate.cfg.xml进行ORMapping///
<?xml version='1.0' encoding='UTF-8'?>
br /> "-//Hibernate/Hibernate Configuration DTD 3.0//EN" ""><!-- Generated by MyEclipse Hibernate Tools. -->
<!-- SessionFactory配置 --> <!-- 数据库配置 --> jdbc:hsqldb:hsql://localhostorg.hsqldb.jdbcDriversa<!-- 数据库方言,每个数据库都有其对应的dialect以匹配其平台特性 -->
org.hibernate.dialect.HSQLDialect<!-- 事务管理类型,这里我们使用JDBCTransactionFactory(默认值) -->
org.hibernate.transaction.JDBCTransactionFactory <!-- 关闭二级缓存 -->org.hibernate.cache.NoCacheProvider<!-- 是否将运行期生成的sql输出到日志以供调试 -->
true <!-- 映射文件,必须包含相对于classpath根的全路径名 -->/*********************************************
--------------------------------------------------------------导入库属性 ---javabuilderpath add jars修改hibernate.config.xml 生成BEAN修改BEAN配置 做mapping(注意:类型要用对象如integer)---------------------------------------------------------------wtp-all-in-one-sdk-R-1.5.1-200609230508-win32.zip---------------------------------------------------------------step1 prepare sessionfactorystep2 create session---------------------------------------------------------------
autoboxingjavabean---entryattachdettach----------------------------------------------------------------**********************************************/
6.创建使用hibernate的类AccountTest:
package com.test;
import org.hibernate.HibernateException;
import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import java.util.List;public class AccountTest {
public static void main(String[] args){ Account user = new Account(); //Transient user.setName("vincent"); //Step 1: prepare SessionFactory SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory(); //Step 2: create session Session session=sessionFactory.openSession(); Transaction trx = null; Integer id=null; try { //开启事务 trx = session.beginTransaction(); id = (Integer) session.save(user); //Persistent System.out.println("id:" + id); System.out.println("user.getId():" + user.getId()); user.setName("jacky"); //提交事务 trx.commit(); } catch (HibernateException e) { e.printStackTrace(); //验证失败 //Assert.fail(e.getMessage()); //回滚事务 if (trx != null) trx.rollback(); } Account user1 = (Account) session.load(Account.class, id); System.out.println(user1.getName()); //assertEquals("vincent", user.getName()); List result = session.createQuery("from Account").list(); for (Object acct:result){ System.out.println(((Account)acct).getName()); } }}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/219138/viewspace-913268/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/219138/viewspace-913268/