总结Hibernate使用步骤贴
1,搭建环境
1.1 导入所有需要的jar包
包括 Hibernate框架包、sql驱动包、日志包。
1.2创建对应的实体类
根据orm思想创建的实体类,将与与表中的各项属性对应(只是对应,不是完全一致)。
public class User {
//主键
private int uid;
private String username;
private String password;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [uid=" + uid + ", username=" + username + ", password=" + password + ", address=" + address + "]";
}
}
1.3实体和表的关系映射xml文件
xml文件通常以实体类.hbm.xml命名 可以更改。(hnm即hibernate xml)
通常放在src目录下 可以更改。
<?xml version="1.0" encoding="Utf-8"?>
<!--dit约束-->
<!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="com.vv.entity.User" table="ttt_user">
<!-- id
name:对应实体类唯一标识
column:生成的表字段名称 -->
<id name="uid" column="uid">
<!--
generator class:配置主键生成策略
native表示根据数据库类型自动匹配 自动增长
-->
<generator class="native"></generator>
</id>
<!--
配置其他属性和表字段的对应
-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
dtd约束可以访问Hibernate dtd文件官网
这里添加的约束为hibernate-mapping-3.0.dtd
直接复制前面到xml文件中
其中主键生成策略即generator class有多种方案,欲了解请自行搜索。
1.4核心配置文件
名字只能hibernate.cfg.xml。
位置只能在src下。
这里添加的约束为hibernate-configuration.dtd
同上直接复制就好
<?xml version="1.0" encoding="UTF-8"?>
<!--dit约束-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--根据官方下载的包中的properties文件配置property属性-->
<hibernate-configuration >
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/springday</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 是否打印sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 是否整理SQL语句 -->
<property name="hibernate.format_sql">true</property>
<!-- 无表自动创建 -->
<property name="hibernate.hbm2ddl.auto" >update</property>
<!-- 配置数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 配置映射文件 -->
<mapping resource="com/vv/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
hibernate.properties文件找到对应数据库
2.测试代码
public class Demo {
public static void main(String[] args) {
// 加载核心配置文件
Configuration con = new Configuration().configure();
con.configure();
// 创建sessionFactory对象
SessionFactory sFactory = con.buildSessionFactory();
// 使用sessionFactory创建session对象
Session session = sFactory.openSession();
// 获取并开启事务
Transaction transaction = session.beginTransaction();
// 业务代码
User user = new User("阿飞","666","四川");
System.out.println(user);
session.save(user);
// 提交事务
transaction.commit();
// 关闭资源
session.close();
sFactory.close();
}
}