hibernate是开源的,用于封装数据访问层的组件,称为:数据访问层框架(持久层框架)
写一个入门案例,体现hibernate的工作方式!明白hibernate作用及其程序结构!
例子:用Hibernate实现增删查改案例
环境:
IDE工具:Myeclipse ,mysql
所需jar包:
hibernate的jar:

mysql所需jar(程序用到mysql数据库):
mysql-connector-java-5.1.6-bin.jar
步骤:
1.创建一个web项目
2.导入jar包
3.建数据库和表文件
4.建hibernate和数据库的关联配置文件hibernate.cfg.xml
5.建立和数据库关联的POJO类User.java
6.建立数据库和User.java关联的配置文件User.hbm.xml
7.在hibernate.cfg.xml中关联映射文件
8.写测试类(TestHibernate)
项目最后截图:

开始:
1.创建一个项目
还是截图,创建的项目名称为HibernateSpExa

2.导入所需jar包
导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可,这里需要hibernate和Mysql的jar包)

3.建数据库和表文件
在WebRoot下面建立db.sql文件,在里面建立下图所示内容,并关联Mysql运行建立数据库和表

4.建hibernate和数据库的关联配置文件hibernate.cfg.xml
主要是配置连接数据库:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接信息 -->
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- hibernate配置 -->
<!-- 方言配置,用于配置对哪个的SQL语句 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 将Sql打印到控制台,一般用于数据库调优 -->
<property name="show_sql">true</property>
<!-- 打印出的SQL语句以缩进的形式打印出来 -->
<property name="format_sql">true</property>
</session-factory>
</hibernate-configuration>
5.建立和数据库关联的POJO类User.java
POJO类
package com.TodayMZ.hiber.po;
public class User {
private Integer id;
private String loginName;
private String password;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
6.建立数据库和User.java关联的配置文件User.hbm.xml
配置User.java与数据库字段关联的字段
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.TodayMZ.hiber.po.User" table="t_user">
<id name="id" type="integer" column="t_id">
<generator class="identity"></generator>
</id>
<property name="loginName" type="string" column="t_login_name">
</property>
<property name="password" type="string" column="t_password">
</property>
<property name="name" type="string" column="t_name">
</property>
</class>
</hibernate-mapping>
7.在hibernate.cfg.xml中关联映射文件
(如图配置文件)
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接信息 -->
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- hibernate配置 -->
<!-- 方言配置,用于配置对哪个的SQL语句 -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- 将Sql打印到控制台,一般用于数据库调优 -->
<property name="show_sql">true</property>
<!-- 打印出的SQL语句以缩进的形式打印出来 -->
<property name="format_sql">true</property>
<!-- 在配置文件中关联映射文件 -->
<mapping resource="com/TodayMZ/hiber/po/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
8.写测试类(TestHibernate)
测试类主要用于测试hibernate的增删查改功能!
hibernate封装了SQL语句,只需要调用hibernate的API就可以实现增删查改,比SQL语句简便
增加save方法:package com.TodayMZ.hiber.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.TodayMZ.hiber.po.User;
public class TestHibernate {
@Test
public void test1(){
User user=new User();
user.setLoginName("todayMZ");
user.setName("today");
user.setPassword("1234");
Configuration conf=new Configuration();/*调用HibernateAPI,装载Hibernate配置文件*/
conf.configure();/*装载默认配置文件,所过指定则装载conf.configure(new File("abc.xml"););*/
SessionFactory factory=conf.buildSessionFactory();/*创建SessionFactory*/
Session session=factory.openSession(); /*创建Session*/
Transaction tx=session.getTransaction();/*获取事物*/
tx.begin(); /*开启事物*/
session.save(user);/*插入数据*/
tx.commit(); /*提交事物*/
session.close();/*关闭事物*/
}
}
更改Update方法:
package com.TodayMZ.hiber.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.TodayMZ.hiber.po.User;
public class TestHibernate {
@Test
public void test1(){
User user=new User();
user.setId(1);
user.setLoginName("todayMZ2");
user.setName("today2");
user.setPassword("12345");
Configuration conf=new Configuration();
conf.configure();
SessionFactory factory=conf.buildSessionFactory();
Session session=factory.openSession();
Transaction tx=session.getTransaction();
tx.begin();
session.update(user);/*更改*/
tx.commit();
session.close();
}
}
查询Query方法:
package com.TodayMZ.hiber.test;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.TodayMZ.hiber.po.User;
public class TestHibernate {
@Test
public void test1(){
Configuration conf=new Configuration();
conf.configure();
SessionFactory factory=conf.buildSessionFactory();
Session session=factory.openSession();
Transaction tx=session.getTransaction();
tx.begin();
//查询语句
Query query=session.createQuery("from User");
List<User> userList=query.list();
for(User user :userList){
System.out.println(user.getId()+","+user.getLoginName()+","
+user.getName()+","+user.getPassword());
}
tx.commit();
session.close();
}
}
删除delete方法:
package com.TodayMZ.hiber.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.TodayMZ.hiber.po.User;
public class TestHibernate {
@Test
public void test1(){
User user=new User();
user.setId(1);
Configuration conf=new Configuration();
conf.configure();
SessionFactory factory=conf.buildSessionFactory();
Session session=factory.openSession();
Transaction tx=session.getTransaction();
tx.begin();
session.delete(user);/*删除*/
tx.commit();
session.close();
}
}运行:
在Testhibernate类右键选择Run As ---->JUnit Test,控制台就会打印出当前执行的SQL语句和运行结果!
that's OK!
----------------------------------------我是分割线-------------------------------------------------
文章适合初学者,都是基础知识(高手请绕道),给出了一个hibernate的执行基本结构。
给自己看,也给刚接触的人儿看!
转载请说明出处:http://blog.youkuaiyun.com/todaymz/article/details/8755401
本文是针对初学者的Hibernate入门教程,通过一个实际案例展示了如何使用Hibernate进行数据库操作,包括创建项目、配置数据库连接、定义POJO类、设置映射文件以及编写测试类实现增删查改功能。通过本文,读者可以了解Hibernate的基本工作原理和使用方法。
436

被折叠的 条评论
为什么被折叠?



