两种配置(数据库的连接配置,数据库表的映射),两个依赖(hibernate核心依赖,数据库的驱动依赖)
①、依赖:
<!--hibernate的核心依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.10.Final</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
②、hibernate数据库连接配置(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">
<hibernate-configuration>
<session-factory>
<!--数据库用户名-->
<property name="hibernate.connection.username">root</property>
<!--数据库密码-->
<property name="hibernate.connection.password">123456</property>
<!--数据库连接地址-->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=utf-8</property>
<!--数据库连接驱动包-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!--数据库方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--显示sql语句-->
<property name="show_sql">true</property>
<!--sql语句格式化-->
<property name="format_sql">true</property>
<!--指明表的映射文件路径-->
<mapping resource="Users.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
③、表的映射文件(表名.hbm.xml)
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2019-7-10 15:07:31 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<!--
name:对应表的实体类全限定名
table:对应表的名称
-->
<class name="com.xb.entity.Users" table="Users">
<!--
id标签就是表的主键
name:实体类的属性名
type:属性对应的变量类型
column:表的列名
<generator class="native" />:主键生成策略(主键生成方式)
-->
<id name="usersid" type="java.lang.Integer">
<column name="usersid" />
<generator class="native" />
</id>
<property name="usersname" type="java.lang.String">
<column name="usersname" />
</property>
<property name="userspwd" type="java.lang.String">
<column name="userspwd" />
</property>
</class>
</hibernate-mapping>
④、测试
public class SqlTest {
@Test
public void test(){
//获取配置类
Configuration configuration=new Configuration().configure();
//获取sessionFactory
SessionFactory factory=configuration.buildSessionFactory();
//打开一个session
Session session = factory.openSession();
//开启事务
Transaction transaction = session.beginTransaction();
//添加一行到session
session.save(new Users("***","123"));
//通过主键查询对象
session.load(Users.class, 2);
//修改
load.setUsersname("胡星星");
session.update(load);
//删除
session.delete(load);
//提交事务(查询除外)
transaction.commit();
//关闭session
session.close();
}
}
结:一开始是把表的映射文件和实体类放在一起,后来发现编译不到。用了很多种方法还是不行。