一、环境准备
环境的搭建我就不多说了,在我前面的教程有说道
1)新建java工程,导入·相关包
2)配置xml文件
3)编写实体类
下面贴出代码
user类
package czy.po;
import java.util.Date;
public class User {
private String userId;
private String userName;
private String pass;
private Date todate;
public Date getTodate() {
return todate;
}
public void setTodate(Date todate) {
this.todate = todate;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", pass="
+ pass + "]";
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
配置跟MySQL的连接的xml文件
<?xml version="1.0"?>
<!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="show_sql">true</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/mysql</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 方言 -->
<mapping resource="User.hbm.xml" />
</session-factory>
</hibernate-configuration>
配置实体类的xml文件
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- auto-import="false" false不能自动识别对象,
在使用hql时候需要加上包的路径
在使用相同的类名时候,需要把包名写上
-->
<!-- package="czy"是指默认包的路径 -->
<hibernate-mapping auto-import="true" package="czy">
<class name="czy.po.User" table="user_list1" >
<!-- id表示是主键 -->
<id name="userId" column="userId" >
<generator class="native"/>
</id>
<!--实体类的属性->
<property name="userName"></property>
<property name="pass"></property>
<property name="todate"></property>
</class>
</hibernate-mapping>
基本环境弄好,接下来真正开始开工!
二、自动创建数据库表
1)配置自动生成序列(也就是自动递增)
自动生成序列
<generator class="sequence">
<param name="sequence">seq_user</param>
</generator>
2)在上面连接数据库的xml那里配置自动创建表
增加一句
<!-- 自动创建表 -->
<property name="hbm2ddl.auto">create</property>
<mapping resource="User.hbm.xml" />
这是MySQL的配置
<?xml version="1.0"?>
<!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="show_sql">true</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/mysql</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 方言 -->
<!-- 自动创建表 -->
<property name="hbm2ddl.auto">create</property>
<mapping resource="User.hbm.xml" />
</session-factory>
</hibernate-configuration>
这是连接oracle的配置
<?xml version="1.0"?>
<!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="show_sql">true</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">test</property>
<property name="connection.password">admin</property>
<property name="connection.isolation">2</property>
<property name="dialect">
<!--注意后面OracleDialect的写法表示兼容任何版本->
org.hibernate.dialect.OracleDialect
</property>
<!-- 自动创建表 -->
<property name="hbm2ddl.auto">create</property>
<mapping resource="User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3)初步成功,可以写一个测试类来试一下
新建test类
package czy.test;
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import czy.po.ChildUser;
import czy.po.User;
public class Test2 {
public static void main(String[] args) {
//加载总配置文件
// Configuration cfg = new Configuration().configure("oracle.cfg.xml");
Configuration cfg = new Configuration().configure();
//获取会话工厂(一个数据库只能有一个会话工厂)
SessionFactory sf = cfg.buildSessionFactory();
//会话
Session session = sf.openSession();
//事务
Transaction tx = session.beginTransaction();
//动态插入
Date date=new Date();
user.setUserId("2");
// user.setDate(date);
user.setUserName("动态插入2");
session.save(user);
// session.update(user);
System.out.println(date.toLocaleString());
//关闭事务
tx.commit();
}
}
大功告成,可以在数据库查到我们的表
4)总结
配置成功的关键有以下几点:
1、数据库的连接,保证没有写错名字,有导入驱动包
2、主键id记得配置自动生成序列
3、在连接数据库的地方配置自动创建表的标签
最后有什么问题可以提出来!