Hibernate 创建表
1,首先数据库必须存在,然后在数据库中创建表(使用hibernate)
2,创建配置文件hibernate.cfg.xml
注意:这个一定要加上
3,创建一个JavaBean ,Event类(javabean)
4,创建Event类的配置文件Event.hbm.xml
5,创建测试类
运行结果
目录:
[img]http://dl.iteye.com/upload/picture/pic/49077/2386da62-201a-3196-af32-ba4cd7a3ad19.jpg[/img]
1,首先数据库必须存在,然后在数据库中创建表(使用hibernate)
2,创建配置文件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">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:ORCL</property>
<property name="hibernate.connection.username">scott</property>
<property name="hibernate.connection.password">tiger</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping resource="config/Event.hbm.xml" />
</session-factory>
</hibernate-configuration>
注意:这个一定要加上
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
3,创建一个JavaBean ,Event类(javabean)
package events;
import java.util.Date;
public class Event {
private Long id;
private String title;
private Date date;
public Event() {}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
4,创建Event类的配置文件Event.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "events.Event" table ="events">
<id name = "id" column = "events_id">
<generator class = "native"/>
</id>
<property name = "date" type ="date" column = "event_date" />
<property name = "title" type = "string" column = "event_title" />
</class>
</hibernate-mapping>
5,创建测试类
package events;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class ExportDB {
public static void main(String[] args) {
Configuration configuration=new Configuration().configure("config/hibernate.cfg.xml");
SchemaExport schemaExport=new SchemaExport(configuration);
schemaExport.create(true, true);
// 插入数据
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Event theEvent = new Event();
theEvent.setTitle("title");
theEvent.setDate(new Date());
session.save(theEvent);
tx.commit();
// //查询数据
Query query = session.createQuery("from Event");
List list = query.list();
Iterator i = list.iterator();
Event event = (Event) i.next();
while (i.hasNext()) {
System.out.println(event.getId());
System.out.println(event.getTitle());
System.out.println(event.getDate());
}
// 更新数据
// Transaction tx1 = null;
// try {
// tx = session.beginTransaction();
// Event obj = (Event )session.load(Event.class,event.getId());
// obj.setTitle("title1");
// session.update(obj);
// }catch (Exception e){
// e.printStackTrace();
// }
Transaction tx3 = null;
String sql = "select * from Event";
Query query1 = session.createSQLQuery(sql);
// query1.setInteger(0, 1);
List list1 = query.list();
Iterator it = list1.iterator();
tx3 = session.beginTransaction();
while (it.hasNext()) {
Event user = (Event) it.next();
// 这里就是你要修改的字段啊,多个,你要都写出来
user.setTitle("男");
// 然后更新回去
session.update(user);
}
tx3.commit();
}
}
}
运行结果
2009-11-11 10:32:41 org.hibernate.cfg.Environment <clinit>
2009-11-11 15:12:06 org.hibernate.cfg.Environment <clinit>
信息: Hibernate 3.2.0
2009-11-11 15:12:06 org.hibernate.cfg.Environment <clinit>
信息: hibernate.properties not found
2009-11-11 15:12:06 org.hibernate.cfg.Environment buildBytecodeProvider
信息: Bytecode provider name : cglib
2009-11-11 15:12:06 org.hibernate.cfg.Environment <clinit>
信息: using JDK 1.4 java.sql.Timestamp handling
2009-11-11 15:12:06 org.hibernate.cfg.Configuration configure
信息: configuring from resource: config/hibernate.cfg.xml
2009-11-11 15:12:06 org.hibernate.cfg.Configuration getConfigurationInputStream
信息: Configuration resource: config/hibernate.cfg.xml
2009-11-11 15:12:06 org.hibernate.cfg.Configuration addResource
信息: Reading mappings from resource: config/Event.hbm.xml
2009-11-11 15:12:06 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: events.Event -> events
2009-11-11 15:12:06 org.hibernate.cfg.Configuration doConfigure
信息: Configured SessionFactory: null
2009-11-11 15:12:06 org.hibernate.dialect.Dialect <init>
信息: Using dialect: org.hibernate.dialect.OracleDialect
2009-11-11 15:12:06 org.hibernate.tool.hbm2ddl.SchemaExport execute
信息: Running hbm2ddl schema export
2009-11-11 15:12:06 org.hibernate.tool.hbm2ddl.SchemaExport execute
信息: exporting generated schema to database
2009-11-11 15:12:06 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Using Hibernate built-in connection pool (not for production use!)
2009-11-11 15:12:06 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Hibernate connection pool size: 20
2009-11-11 15:12:06 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: autocommit mode: false
2009-11-11 15:12:06 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
2009-11-11 15:12:06 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: connection properties: {user=scott, password=****}
drop table events cascade constraints
drop sequence hibernate_sequence
create table events (events_id number(19,0) not null, event_date date, event_title varchar2(255), primary key (events_id))
create sequence hibernate_sequence
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.SchemaExport execute
信息: schema export complete
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider close
信息: cleaning up connection pool: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Using Hibernate built-in connection pool (not for production use!)
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Hibernate connection pool size: 20
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: autocommit mode: false
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
2009-11-11 15:12:07 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: connection properties: {user=scott, password=****}
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: RDBMS: Oracle, version: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC driver: Oracle JDBC driver, version: 10.1.0.2.0
2009-11-11 15:12:07 org.hibernate.dialect.Dialect <init>
信息: Using dialect: org.hibernate.dialect.OracleDialect
2009-11-11 15:12:07 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
信息: Using default transaction strategy (direct JDBC transactions)
2009-11-11 15:12:07 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
信息: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Automatic flush during beforeCompletion(): disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Automatic session close at end of transaction: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC batch size: 15
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC batch updates for versioned data: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Scrollable result sets: enabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC3 getGeneratedKeys(): disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Connection release mode: auto
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Default batch fetch size: 1
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Generate SQL with comments: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Order SQL updates by primary key: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
信息: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2009-11-11 15:12:07 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
信息: Using ASTQueryTranslatorFactory
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Query language substitutions: {}
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: JPA-QL strict compliance: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Second-level cache: enabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Query cache: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory createCacheProvider
信息: Cache provider: org.hibernate.cache.NoCacheProvider
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Optimize cache for minimal puts: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Structured second-level cache entries: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Echoing all SQL to stdout
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Statistics: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Deleted entity synthetic identifier rollback: disabled
2009-11-11 15:12:07 org.hibernate.cfg.SettingsFactory buildSettings
信息: Default entity-mode: pojo
2009-11-11 15:12:07 org.hibernate.impl.SessionFactoryImpl <init>
信息: building session factory
2009-11-11 15:12:07 org.hibernate.impl.SessionFactoryObjectFactory addInstance
信息: Not binding factory to JNDI, no JNDI name configured
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
信息: Running hbm2ddl schema update
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
信息: fetching database metadata
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
信息: updating schema
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.TableMetadata <init>
信息: table found: SCOTT.EVENTS
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.TableMetadata <init>
信息: columns: [events_id, event_date, event_title]
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.TableMetadata <init>
信息: foreign keys: []
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.TableMetadata <init>
信息: indexes: [sys_c005412]
2009-11-11 15:12:07 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
信息: schema update complete
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into events (event_date, event_title, events_id) values (?, ?, ?)
Hibernate: select event0_.events_id as events1_0_, event0_.event_date as event2_0_, event0_.event_title as event3_0_ from events event0_
Hibernate: select event0_.events_id as events1_0_, event0_.event_date as event2_0_, event0_.event_title as event3_0_ from events event0_
Hibernate: update events set event_date=?, event_title=? where events_id=?
目录:
[img]http://dl.iteye.com/upload/picture/pic/49077/2386da62-201a-3196-af32-ba4cd7a3ad19.jpg[/img]