Hibernate 第一课
第一步:在NetBeans下建一个java项目(在javaweb项目中可以选择自带了基本的库文件,而且还配置了hibernate_cfg.xml)。
第二步:接下来配置hibernate.cfg.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> ....................................1<hibernate-configuration>
<session-factory>
<!--数据库配置-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</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"/>
<!--sql-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--映射文件-->
<mapping resource="instance.hbm.xml"/>
</session-factory>
</hibernate-configuration>1、注意红色部分你需要对应你自己的版本。
2、注意在NetBeans下,默认使用的Derby数据库什么的,我这是MySQL我就改成MySQL相关的配置。
第三步:创建一个持续类,我取得类名为Instance。
package Test;
public class Instance {
Instance(int id, String name, int number) {
this.id = id;
this.name = name;
this.number = number;
}
this.id = id;
this.name = name;
this.number = number;
}
int getId() {
return id;
}
return id;
}
public void setId(int id) {
this.id = id;
}
this.id = id;
}
public void setNumber(int number) {
this.number = number;
}
this.number = number;
}
public void setName(String name) {
this.name = name;
}
this.name = name;
}
int getNumber() {
return number;
}
return number;
}
String getName() {
return name;
}
return name;
}
private int id, number;
private String name;
}
private String name;
}
1、所有的属性都要有get和set方法!!!!!
第四步:创建一个表,我的取名为hibernate_db。
注意:建议把设置主键 并且把你的主键设置为自增(数字的话)。
第五部:选择你的项目右键->hibernate映射想到 文件名 xxxx.hbm.xml 选择你刚刚建的类 我的就是上面的Instance类。。。。根据提示,然后填上自己类的信息下面是我的Instance.hbm.xml。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> //注意和第二步一样匹配自己的版本
<!--
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> //注意和第二步一样匹配自己的版本
<!--
-->
<hibernate-mapping>
<class name="Test.Instance" table="hibernate_db">
<id name="id" column="id"> //主键用id来描述 前一个是在类里面的名,后一个是在数据库里面的列名
<generator class="native"/>
</id>
<property name="name" column="name"/> //其他的属性用property标签
<property name="number" column="number"/>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="Test.Instance" table="hibernate_db">
<id name="id" column="id"> //主键用id来描述 前一个是在类里面的名,后一个是在数据库里面的列名
<generator class="native"/>
</id>
<property name="name" column="name"/> //其他的属性用property标签
<property name="number" column="number"/>
</class>
</hibernate-mapping>
第六步:编写测试类,测试前边的配置。
package Test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class test {
public static void main(String args[]) {
Configuration cfg = new Configuration().configure();
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session sesion = sf.openSession();
Transaction ts = sesion.beginTransaction();
Transaction ts = sesion.beginTransaction();
Instance instace = new Instance(8,"jiangchunjie",457899);
sesion.save(instace);
ts.commit();
sesion.close();
sf.close();
sesion.save(instace);
ts.commit();
sesion.close();
sf.close();
}
}
}
结果如下:
不用管这个id为6 因为刚刚已经设置了主键自增模式!数据库已经增到6;