Hibernate配置,CRUD操作,Junit单元测试
来源:互联网 发布:calendar什么软件 编辑:程序博客网 时间:2024/04/28 15:54
本文资料来自java1234小峰(java1234.com)
官网:http://hibernate.org/
Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC 的场合,既可以在Java 的客户端程序使用,也可以在Servlet/JSP 的Web 应用中使用,最具革命意义的是,Hibernate可以在应用EJB 的J2EE 架构中取代CMP,完成数据持久化的重任。ORM 框架,对象关系映射(Object/Relation Mapping)
导包
引入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="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <!-- 方言 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 控制台显示SQL --> <property name="show_sql">true</property> <!-- 自动更新表结构 --> <property name="hbm2ddl.auto">update</property> <mapping resource="com/zhiqi/model/Employee.hbm.xml"/> </session-factory></hibernate-configuration>
创建一个Employee对象
package com.zhiqi.model;public class Employee {private long id;private String name;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
配置Employee.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.zhiqi.model"><class name="Employee" table="t_employee"><id name="id" column="employee_id"><generator class="native"></generator></id><property name="name"></property></class></hibernate-mapping>
测试类
package com.zhiqi.service;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;public class EmployeeTest {public static void main(String[] args) {Configuration configuration=new Configuration().configure();//实例化配置文件ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();SessionFactory sessionFactory=configuration.buildSessionFactory(serviceRegistry);//获取session工厂Session session=sessionFactory.openSession();session.beginTransaction();//开始事务session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}}运行一下
数据库已经多了一张表
我们看表结构
设置数据
1、HibernateUtil 封装
2、XML 版CRUD 实现
package com.zhiqi.service;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import com.zhiqi.model.Employee;import com.zhiqi.util.HibernateUtil;public class EmployeeTest {private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();public static void main(String[] args) {EmployeeTest employeeTest=new EmployeeTest();//employeeTest.add();//employeeTest.delete();//employeeTest.update();employeeTest.getAllEmployee();}private void add(){Session session=sessionFactory.openSession();session.beginTransaction();//开始事务Employee emp=new Employee();emp.setName("德玛西亚3");session.save(emp);session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}private void delete(){Session session=sessionFactory.openSession();session.beginTransaction();//开始事务Employee emp=(Employee)session.get(Employee.class, Long.valueOf(1));session.delete(emp);session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}private void update(){Session session=sessionFactory.openSession(); // 生成一个session session.beginTransaction(); // 开启事务 Employee emp=(Employee)session.get(Employee.class, Long.valueOf(2)); emp.setName("女枪"); session.save(emp); session.getTransaction().commit(); // 提交事务 session.close(); // 关闭session}private void getAllEmployee(){Session session=sessionFactory.openSession();session.beginTransaction();//开始事务String hql="from Employee";//这是个类Query query=session.createQuery(hql);List<Employee> employeeList=query.list();for(Employee emp:employeeList){System.out.println(emp);}session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}}
3、注解版CRUD 实现
package com.zhiqi.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity@Table(name="t_manager")public class Manager {private long id;private String name;@Id@GeneratedValue(generator="_native")@GenericGenerator(name="_native", strategy = "native" )public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Manager [id=" + id + ", name=" + name + "]";}}
4、Junit4 单元测试框架引入
package com.zhiqi.service;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.junit.Test;import com.zhiqi.model.Manager;import com.zhiqi.util.HibernateUtil;public class ManagerTest2 {private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();@Testpublic void testAdd() {Session session=sessionFactory.openSession();session.beginTransaction();//开始事务Manager emp=new Manager();emp.setName("暴走萝莉");session.save(emp);session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}@Testpublic void testDelete() {Session session=sessionFactory.openSession();session.beginTransaction();//开始事务Manager emp=(Manager)session.get(Manager.class, Long.valueOf(1));session.delete(emp);session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}@Testpublic void testUpdate() {Session session=sessionFactory.openSession(); // 生成一个session session.beginTransaction(); // 开启事务 Manager emp=(Manager)session.get(Manager.class, Long.valueOf(2)); emp.setName("女枪"); session.save(emp); session.getTransaction().commit(); // 提交事务 session.close(); // 关闭session}@Testpublic void testGetAllManager() {Session session=sessionFactory.openSession();session.beginTransaction();//开始事务String hql="from Manager";//这是个类Query query=session.createQuery(hql);List<Manager> ManagerList=query.list();for(Manager emp:ManagerList){System.out.println(emp);}session.getTransaction().commit();//提交事务session.close();//关闭sessionsessionFactory.close();//关闭session工厂}}
0 0
- Hibernate配置,CRUD操作,Junit单元测试
- hibernate 配置--入门操作----实现crud 操作
- Hibernate配置及持久化操作(CRUD)
- Android:单元测试Junit配置
- junit单元测试环境配置
- hibernate的crud操作
- hibernate的CRUD操作
- hibernate的CRUD操作
- Hibernate的CRUD操作
- hibernate的crud操作
- Hibernate crud操作
- Spring+hibernate的单元测试Junit
- Hibernate之单元测试利器JUnit
- spring+hibernate+junit 单元测试 实例
- Hibernate的CRUD以及junit测试
- Android:单元测试Junit的配置
- Android:单元测试Junit的配置
- Android:单元测试Junit的配置
- angularJS06
- UVA 10951
- ubuntu 12.04固定IP设置
- flume+kafka+storm+hdfs
- SQL学习之:数值型函数
- Hibernate配置,CRUD操作,Junit单元测试
- 引用与指针的区别
- 项目中session的管理方式
- java ArrayList add()方法数据被覆盖问题
- Hadoop介绍
- 初学JSP与Servlet之登录界面3.0版本
- C++读书笔记之类的继承1(第十三章)
- 压缩感知常用基础数学概念
- jsp页面checkbox全选或全部取消的代码