hibernate的创建_lm_y的博客-程序员宅基地

技术标签: Java  java  

1、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>
        <!-- Database connection settings -->
        <!-- 配置驱动 -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>

        <!-- SQL dialect -->
        <!-- 配置方言. -->
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
		<!-- 指定对象关系映射文件 -->
        <mapping resource="com/lmy/domain/Employee.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
2、Employee.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'>
<!-- 这是一个对象关系映射文件User和users关联 -->
<hibernate-mapping package="com.lmy.domain">

	<!-- 类和表建立联系 -->
    <class name="Employee" table="employee">
	<!-- 配置主键属性 -->
        <id name="id" type="java.lang.Integer" column="id">
            <generator class="sequence" >
            <param name="sequence">emp_seq</param>
            </generator>
        </id>
<!-- 配置其他属性 -->
        <property name="name" type="java.lang.String" >
            <column name="name"   not-null="false"/>
        </property>

   
        <property name="email" type="java.lang.String">
            <column name="email" not-null="false"/>
        </property>

        <property name="hiredate" type="java.util.Date">
            <column name="hiredate" not-null="false" />
        </property>

    </class>

</hibernate-mapping>
3、TestMain.java 文件
package com.lmy.view;


import com.lmy.util.*; 

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.lmy.domain.Employee;
import com.lmy.util.MySessionFctory;



@SuppressWarnings("unused")
public class TestMain {

	public static void main(String[] args) {

		addEmployee();

		//modify();
	}

	public static void modify() {
		Session session = MySessionFctory.getSessionFactory().openSession();
		//做成事务
		Transaction ts = session.beginTransaction();
		//修改用户
		Employee emp = (Employee) session.load(Employee.class, 4);
		emp.setName("huhu");//导致update的产生
		emp.setEmail("[email protected]");
		
		ts.commit();
		session.close();
	}

	public static void addEmployee() {
		// TODO Auto-generated method stub
		//用hibernate完成crud操作
		//读取hibernate.cfg.xml文件
		Configuration configuration = new Configuration().configure();
		//创建SessionFactory会话工厂
		SessionFactory sessionFactory =configuration.buildSessionFactory();
		//创建Session
		Session session = sessionFactory.openSession();
		Transaction transtion = session.beginTransaction();
		//添加一个雇员
		Employee employee = new Employee();
		employee.setEmail("[email protected]");
		employee.setName("meng");
		employee.setHiredate(new Date());
		//保存
		session.save(employee);
		//提交
		transtion.commit();
		session.close();
	}

}

4、Employee.java文件
package com.lmy.domain;

public class Employee implements java.io.Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	//pojo也叫javabean,按照国定应该被序列话,目的是唯一标识的对象
	
	
	private Integer id;
	private String name;
	private String email;
	private java.util.Date hiredate;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public java.util.Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(java.util.Date hiredate) {
		this.hiredate = hiredate;
	}


}
5、需要的jar包




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Com_ma/article/details/68484500

智能推荐

【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】_resample函数-程序员宅基地

常量和结构体定义的头文件ConstParam.h在下面文章中MATLAB库函数hilbert(希尔伯特变换)的C语言实现(FFT采用FFTW库)_resample函数

Sql Server实现limit用法_sqlserver limit_杨 戬的博客-程序员宅基地

文章目录案例前导数据案例一:查前几条案例二:查第几条到第几条案例前导数据-- 浏览记录表:浏览id(自增属性),浏览用户名,浏览书籍名drop table browserecord;create table browserecord(recordid int identity(1,1) not null primary key,username varchar(255) not null,bookname varchar(255) not null ,)insert into brows_sqlserver limit

python `AttributeError: 'NoneType' object has no attribute 'group'`_python3 attributeerror: 'nonetype' object has no a-程序员宅基地

AttributeError: 'NoneType' object has no attribute 'group'import recontent='*** Hello 2018,I am happy'regex='\w+.*?\d{4}.*?\w'result=re.match(regex,content)print(result.group())报错:Traceback (m..._python3 attributeerror: 'nonetype' object has no attribute 'group

GCC编译生成bin_gcc编译bin-程序员宅基地

#连接arm-linux-ld -Tboot.lds -o a.out $^#将elf文件转换为binarm-linux-objcopy -O binary -S a.out a.bin#boot.lds文件SECTIONS { . = 0x30000000; .text : { *(.text) } .rod_gcc编译bin

Ext.TabPanel的enable()和disable()方法-程序员宅基地

今天做控制一个tab也顶部按钮可用与否的demo获取按钮对象,执行按钮对象的disable()方法,过程中都没有任何问题,但是页面按钮就是不变成不可用demo:var toolbar = this.midiModules["VisitFormView"].form.getTopToolbar(); var pBtn = toolbar.find("cmd", "prin..._ext路enrble

嵌套for循环与增强for循环_增强for循环嵌套_于道的博客-程序员宅基地

第十一天学习记录2021.3.20嵌套for循环的使用打印九九乘法表 P41public class Demo01 { public static void main(String[] args) { for (int j = 1; j <= 9; j++) { for(int i = 1; i <= j; i++){ System.out.print(j+"*"+i+"="+j*i+"\t"); _增强for循环嵌套

随便推点

ginkgo php,ginkgo: ginkgo 是一个免费开源的轻量级 PHP 开发框架-程序员宅基地

project 应用部署目录+-- app 应用目录(可设置)| +-- classes 类库目录| | +-- module1 模块1(示例)| | +-- module2 模块2(示例)| | +-- ... 更多模块| || +-- config ..._php ginkgo

解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式-程序员宅基地

众所周知前端向后台发送 post 请求时,必须验证 csrf,否则会报错 403 Forbidden。使用 Django Form 表单可以直接在表单里面添加 {% csrf_token %} 即可,要是通过 Ajax 发送请求又该怎么办?下面提供三种解决办法:<ul id="ddd"> <li>1</li> <li>2</l...

Hive 官方手册学习(一) Hive命令行-程序员宅基地

一、shell窗口下Hive命令行选项hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] [-v] 注意:顺序 -i -e/-f -S -v,其中-e与-S不能同时使用-i 从文件初始化sql(执行hive时初始化时执行,执行完后将进入hive环境中,尽量少用以免覆盖默认的初始化文件)

Android HDMI (二)_设置hdmi 分辨率 app android java-程序员宅基地

修改屏幕密度alps\device\mediateksample\projectname\system.prop ro.sf.lcd_density=240android5.1修改系统分辨率android HDMI显示横竖屏主要是通过persist.demo.hdmirotation和ro.sf.hwrotation这两个属性值来控制的 。其中 persist.demo.hd..._设置hdmi 分辨率 app android java

ubuntu9.10 tftpd-hpa 服务器配置-程序员宅基地

1、安装tftp的server和client,还有xinetd 注意:需要先安装xinetd,否则下面安装tftpd-hpa和tftp-hpa或报错。代码:sudo apt-get install xinetd tftpd-hpa tftp-hpa 说明:tftpd-hpa 是服务器,tftp-hpa是客户端2、xinetd会建立目录/etc/xinetd.d

计算机数字媒体专业人才培养方案,计算机科学与技术学院数字媒体技术专业人才培养方案(.PDF...-程序员宅基地

计算机科学与技术学院数字媒体技术专业人才培养方案 (2015 版)一、培养目标本专业培养德、智、体、美等方面全面发展,掌握数字媒体技术基本理论、基本知识和基本技能,具备良好的技术素质和一定的艺术修养,能在互动媒体、媒体网络、新媒体工程等领域从事数字媒体设计、开发与管理的应用型高级专门人才。二、培养规格本专业要求学生系统学习和掌握数字媒体技术专业的基本理论和基本基础知识,具备多媒体制作、图像处理、视..._数字媒体技术硕士培养方案