hibernate的环境搭建(以一个小例子讲解)
来源:互联网 发布:淘宝企业店铺入口 编辑:程序博客网 时间:2024/05/14 11:29
以Person类为例
一.导入jar包
二.在根目录下(即src目录下)写一个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 代表一个数据库的描述--> <session-factory> <!--链接数据库的url--> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property> <!--链接数据库的驱动--> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!--链接数据库的用户名--> <property name="hibernate.connection.username">root</property> <!--链接数据库的密码--> <property name="hibernate.connection.password">root</property> <!--方言 告诉hibernate用什么数据库,将来会生成什么样的sql语句--> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- hibernate对表的策略 validate 在hibernate容器启动的时候,根据映射文件和持久化类校验表 create 每次当hibernate启动的时候,都会根据持久化类和映射文件创建表 create-drop 每次当hibernate启动的时候,都会根据持久化类和映射文件创建表,销毁的时候删除表 update 检查,如果和映射文件不一致,则更新表的结构,如果没有表,则会创建表 --> <property name="hbm2ddl.auto">update</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <mapping resource="domain/Person.hbm.xml"/> </session-factory></hibernate-configuration>三.持久化类
package domain;/** * * Created by wangxinqi on 2016/12/20. * 持久化类 */public class Person { private long id; private String name; private String sex; 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; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}四.在类的同包下写一个映射文件(一般是 类名.hbm.xml)以此例就是Person.hbm.xml
<?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属性为类的全名 table属性为表的名字 默认值是类名 catlog属性 为数据库的名字 --> <class name="domain.Person" table="Person"> <!-- id为元素主键 name 标示符属性 length 数据库中id的长度 column id属性对于的字段 type 类型 --> <id name="id" length="5" column="id" type="java.lang.Long"> <!-- 主键的产生器 需要通过什么样的方式产生主键 --> <generator class="increment"></generator> </id> <!-- 代表一般的属性 --> <property name="name" type="java.lang.String" length="20"></property> <property name="sex" type="java.lang.String" length="20"></property> </class></hibernate-mapping>五.测试及验证
/** * Created by Administrator on 2016/12/20. * 完成crud的操作 */public class CRUDtest { /** * 建表测试 * */ @Test public void creatTableTest(){ Configuration configuration=new Configuration(); configuration.configure(); configuration.buildSessionFactory(); } /** * 增加数据 * */ @Test public void testSave(){ //创建Configuration实例 Configuration configuration =new Configuration(); //加载hibernate.cfg.xml文件 configuration.configure(); //创建sessionFactory相当于数据源 SessionFactory sessionFactory= configuration.buildSessionFactory();//也可以理解为session工厂 //保存操作是由session来完成的 openSession 方法相当于利用session打开了一个数据库的连接 Session session=sessionFactory.openSession();//开启session(连接) 一个数据库连接对象 就一个seesion //hibernate的事务默认是关闭的,必须手动开启 ,可以保证数据的安全性 Transaction transaction=session.beginTransaction(); Person person=new Person();//临时状态 person.setName("王新起");//临时状态 person.setSex("男");//临时状态 session.save(person);//把一个对象转化为持久化状态 //提交事务 transaction.commit(); //相当于关闭了连接 session.close(); } /** * 查询所有的person对象 * 查询操作不需要开启事务 * */ @Test public void testQueryAllPerson(){ Configuration configuration =new Configuration(); configuration.configure(); SessionFactory sessionFactory=configuration.buildSessionFactory(); Session session=sessionFactory.openSession();// List<Person> persons = session.createQuery("from Person").list(); List<Person> persons =session.createQuery("from Person ").list(); for (Person person :persons){ System.out.print(person.getName()+":"+person.getSex()); } session.close(); } /** * 根据主键查询其中的一条数据 * */ @Test public void testPersonById(){ Configuration configuration=new Configuration(); configuration.configure(); SessionFactory sessionFactory=configuration.buildSessionFactory(); Session session=sessionFactory.openSession(); Person person=session.get(Person.class,1L); System.out.print(person.getName()); session.close(); } /** * 修改 * */ @Test public void testUpdate(){ Configuration configuration =new Configuration(); configuration.configure(); SessionFactory sessionFactory=configuration.buildSessionFactory(); Session session=sessionFactory.openSession(); Transaction transaction =session.beginTransaction(); // 先拿到 再修改 再更新 Person person=session.get(Person.class,1L); person.setName("王帅起"); session.update(person); transaction.commit(); session.close(); } /** * 删除 * */ @Test public void testDelete(){ Configuration configuration =new Configuration(); configuration.configure(); SessionFactory sessionFactory=configuration.buildSessionFactory(); Session session =sessionFactory.openSession(); Transaction transaction =session.beginTransaction(); //先拿到 再删除 Person person =session.get(Person.class,1L); session.delete(person); transaction.commit(); session.close(); }}
1 0
- hibernate的环境搭建(以一个小例子讲解)
- hibernate入门之环境准备,以及第一个例子。
- 以一个简单的登录的例子来演示如何搭建struts1环境
- JNI开发环境搭建及第一个JNI小例子
- Struts1环境搭建并演示一个小例子
- JVM-001-环境搭建及一个小例子
- hibernate环境搭建与例子
- 一个简单的hibernate环境搭建
- 一个hibernate项目的环境搭建
- 《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)
- Hibernate环境搭建(小实例)
- OpenGL VS2012环境搭建以及第一个OpenGL例子(WIN7 64位系统)
- 小团队开发时快速简单的Git环境搭建(以ubuntu为例)
- PhoneGap开发环境搭建以及第一个helloworld的创建
- Spring和Hibernate结合的一个小例子
- Hibernate环境搭建(一个基本的Hibernate应用的实现步骤)
- 一个Hibernate的例子
- 一个Hibernate的例子
- 2663: [Beijing wc2012]灵魂宝石
- ssh使用的是GB2312编
- Android Studio发布项目到Maven私有库(Nexus)
- amp
- (四)静态库和动态库的生成和使用(windows(基于vs)和Linux(基于Ubuntu))
- hibernate的环境搭建(以一个小例子讲解)
- httpd.conf_httpd-2.4.25-x86
- TEC1401.Report开发技术总结 - 第一章 使用PLSQL开发HTML报表
- 处理机调度
- Javascript
- nc 对字段的校验 编辑前时件和编辑后时件
- 弱校计算机网络试卷(2012-2013)
- php.ini_php-5.6.29-Win32-VC11-x86
- CS231n作业笔记2.1:两层全连接神经网络的分层实现