首页 > IT职业 > IT生活 > hibernate学习
现将资料整理出来,过几天不要忘记了
1.启动java自带的数据库
2.对关系表test进行对象化处理
3.试创建类Test 向表插入一条数据
4对对象化的表进行配置,配置Account.hbm.xml
5.配置hibernate.cfg.xml进行ORMapping
6.创建使用hibernate的类AccountTest
现将资料整理出来,过几天不要忘记了
1.启动java自带的数据库
startHsql.bat
内容如下:start java -classpath ../lib/hsqldb.jar org.hsqldb.Server
可以通过db brower查看相关信息,然后配置HSQL驱动
----------------------
driver:HSQLDB
添加驱动libhsqldb.jar
jdbc:hsqldb:hsql://localhost
url jdbc:hsqldb:hsql://localhost
sa
OK!
------------------------------------------------------------
创建表test
id INTERGER PK AI
name varchar 24
insert into account(id,name) values (1,'marry');
select * from account
commit
-------------------------------------------------------------
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如下:
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
5.配置hibernate.cfg.xml进行ORMapping///////////////////////////////////////////////////////////////////////////////////
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<!-- SessionFactory配置 -->
<!-- 数据库配置 -->
jdbc:hsqldb:hsql://localhost
<!-- 数据库方言,每个数据库都有其对应的dialect以匹配其平台特性 -->
<!-- 事务管理类型,这里我们使用JDBCTransactionFactory(默认值) -->
<!-- 关闭二级缓存 -->
<!-- 是否将运行期生成的sql输出到日志以供调试 -->
<!-- 映射文件,必须包含相对于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 sessionfactory
step2 create session
---------------------------------------------------------------
autoboxing
javabean---entry
attach
dettach
----------------------------------------------------------------
**********************************************/////
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博客 ” ,链接:https://blog.itpub.net/219138/viewspace-913268/ ,如需转载,请注明出处,否则将追究法律责任。