新建项目:
导包:
编写配置文件:
Hibernate.cfg.xml放在src里:
<!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ License:
GNU Lesser General Public License (LGPL), version 2.1 or later. ~ See the
lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. -->
<!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="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test2</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 数据库方言 -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<mapping resource="cn/siggy/pojo/User.hbrn.xml"/>
</session-factory>
</hibernate-configuration>
自动生成表:
编辑*.hbrn.xml对象,文件名一般为pojo类的名称,User.hbrn.xml对象,放在pojo类所在的包下
User.hbrn.xml
<!-- package声明pojo类所在的包,如果不这么写则要在class中需要指明pojo类所在的包 --> <hibernate-mapping package="cn.siggy.pojo"> <!-- class类映射一个pojo类,提供了公共的无参构造方法(通过反射产生对象), 属性用private修饰, 并且生成对应的get/set方法, 类不能用final修饰,hibernate会产生代理类(cglib), 类需要指明标识,name类名,table表名 --> <class name="cn.siggy.pojo.User" table="user"> <!-- id表示实体类的标识(OID),对应数据库表中主键 --> <id name="id" column="对应数据库的列名,不写则必须列名数据库一致" length="数据库表中对应数据类型的长度,如果不写则由默认数据长度" type="如果不写则hibernate可以找到对应pojo类的属性的类型"> <!-- 主键生成策略 --> <generator class="native"></generator> </id> <!-- 实体类的属性 --> <property name="name" /> <property name="pwd" /> </class> </hibernate-mapping>
将User.hbrn.xml配置文件加入到hibernate.cfg.xml:
<mapping resource="cn/siggy/pojo/User.hbrn.xml"/>
User bean:
测试:package cn.siggy.pojo; public class User { private int id; private String name; private String pwd; 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 String getpwd() { return pwd; } public void setpwd(String pwd) { this.pwd = pwd; } }
结果:package cn.siggy.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import cn.siggy.pojo.User; public class Test { public static void main(String[] args) { /* * 1、新建configuration对象 * 2、通过configuration创建sessionfactory对象 * 3、通过sessionfactory得到session * 4、通过session对象得到transaction对象 * 5、保存数据 * 5、提交事务 * 6、关闭session对象 */ Configuration cfg=new Configuration().configure(); ServiceRegistry registry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build(); SessionFactory sf=cfg.buildSessionFactory(registry); Session session=sf.openSession(); Transaction tx=session.beginTransaction(); User user=new User(); user.setId(0022); user.setName("扎克伯格"); user.setpwd("1100"); session.save(user); tx.commit(); session.close(); } }