<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-osgi</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-proxool</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-infinispan</artifactId>
<version>5.2.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.2.10.Final</version>
</dependency>
</dependencies>
复制代码
建立核心配置文件和Mapper的xml文件里java
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><
复制代码
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
复制代码
<!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.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/money2?userSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT&allowMultiQueries=true</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!--配置SQL方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>
<!--自动建立表(通常不须要)-->
<property name="hbm2ddl.auto">update</property>
<!--显示SQL-->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!--配置数据实体-->
<!--注册mapper-->
<mapping resource="mapping/AccUser.hbm.xml"/>
</session-factory>
</hibernate-configuration>
复制代码
<!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.libi.entity.AccUser" table="acc_user">
<!--对象标识OID-->
<id name="id" column="id">
<generator class="identity"/>
</id>
<!--属性映射-->
<property name="userName" column="user_name"/>
<property name="password" column="password"/>
<property name="createTime" column="create_time"/>
</class>
</hibernate-mapping>
复制代码
<session-factory>
标签里注册mapping<!--注册mapper-->
<mapping resource="mapping/AccUser.hbm.xml"/>
复制代码
添加主类进行测试mysql
public class Application {
public static void main(String[] args) {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.getTransaction();
transaction.begin();
AccUser user = new AccUser();
user.setUserName("hibernate");
user.setPassword("1233333");
user.setCreateTime(System.currentTimeMillis());
session.save(user);
transaction.commit();
session.close();
sessionFactory.close();
}
}
复制代码
<class name="com.libi.entity.AccUser" table="acc_user">
<!--对象标识OID-->
<id name="id" column="id">
<generator class="具体策略"/>
</id>
</class>
复制代码
public List<AccUser> selectAllUser() {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Query<AccUser> query = session.createQuery("select au from AccUser au", AccUser.class);
query.setFirstResult(0);
query.setMaxResults(10);
return query.getResultList();
}
复制代码
条件查询sql
public AccUser selectUserById(Long uid) {
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Query<AccUser> query = session.createQuery("select au from AccUser au where id = ?", AccUser.class);
//传入占位的ID实现查询
query.setParameter(0, uid);
//获取单个结果
return query.uniqueResult();
}
复制代码
...
Query<AccUser> query = session.createQuery("select au from AccUser au where id = :id", AccUser.class);
...
query.setParameter("id", uid);
...
复制代码
模糊查询数据库
"%查询内容%"
HQL更新和删除(相似SQL更新和删除)数组
HQL查询部分字段缓存
Query userName = session.createQuery("select userName from AccUser where id = 1",String.class);
复制代码
Query userName = session.createQuery("select userName, password from AccUser where id = 1");
复制代码
保存到本地线程bash
<property name="hibernate.current_session_context_class">thread</property>
复制代码
Session currentSession = sessionFactory.getCurrentSession();
复制代码
<many-to-noe>
默标签里添加lazy属性,认是延迟lazy = true
)