Hibernate day01(1)
6637 ワード
<!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>
<!-- -->
<!-- -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<!-- -->
<mapping resource="model/Account.hbm.xml"/>
</session-factory>
</hibernate-configuration
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- name ( ) table , table -->
<class name="model.Account" table="acc_tab">
<!-- type name -->
<id type="integer" name="id">
<!-- ID native -->
<generator class="native"/>
</id>
<property name="name" type="string"></property>
<property name="age" type="integer"></property>
<property name="score" type="double"></property>
<property name="birthday" type="date"></property>
</class>
</hibernate-mapping>
package model;
import java.io.Serializable;
import java.util.Date;
/**
*
* @author sally
*
*/
public class Account implements Serializable{
private int id;//OID
private String name;
private int age;
private double score;
private Date birthday;
public Account(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Account [id=" + id + ", name=" + name + ", age=" + age
+ ", score=" + score + ", birthday=" + birthday + "]";
}
}
package test;
import java.util.Date;
import java.util.List;
import model.Account;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;
public class AccountTest {
@Test
public void createTable(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
SchemaExport se=new SchemaExport(cfg);
// DDL
se.setFormat(true);
se.setDelimiter(" ");
se.setOutputFile("account.sql");
se.create(true, true);
}
@Test
public void add(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
// SessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory();
// Session CRUD
Session session=sessionFactory.openSession();
//
Transaction tr=session.beginTransaction();
Account account=new Account();
account.setName("wangwu");
account.setAge(20);
account.setScore(20.24);
account.setBirthday(new Date());
session.save(account);
tr.commit();
session.close();
}
@Test
public void update(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
// SessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory();
// Session CRUD
Session session=sessionFactory.openSession();
//
Transaction tr=session.beginTransaction();
try{
Account acc=(Account)session.get(Account.class, 1);
System.out.println(acc.toString());
acc.setAge(21);
acc.setScore(87);
session.update(acc);
tr.commit();
}catch(Exception ex){
tr.rollback();
}finally{
session.close();
}
}
@Test
public void delete(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
// SessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory();
// Session CRUD
Session session=sessionFactory.openSession();
//
Transaction tr=session.beginTransaction();
try{
Account acc=(Account)session.get(Account.class, 1);
session.delete(acc);
tr.commit();
}catch(Exception ex){
tr.rollback();
}finally{
session.close();
}
}
@Test
public void get(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
// SessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory();
// Session CRUD
Session session=sessionFactory.openSession();
//
Transaction tr=session.beginTransaction();
try{
Account acc=(Account)session.load(Account.class, 1);
System.out.println(acc);
tr.commit();
}catch(Exception ex){
ex.printStackTrace();
tr.rollback();
}finally{
session.close();
}
}
@Test
public void findAll(){
// hibernate.cfg.xml
Configuration cfg=new Configuration().configure();
// SessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory();
// Session CRUD
Session session=sessionFactory.openSession();
//
Transaction tr=session.beginTransaction();
try{
String sql="from Account";
Query query=session.createQuery(sql);
List<Account> list=(List<Account>)query.list();
for(Account a:list){
System.out.println(a);
}
tr.commit();
}catch(Exception ex){
ex.printStackTrace();
tr.rollback();
}finally{
session.close();
}
}
}