Hibernate的初探


先随便新键一个项目生成一个默认的配置文件



主要的架包支持




pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HibernateLesson</groupId>
  <artifactId>HibernateLesson</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name/>
  <description/>
  <dependencies>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>javaee-api</artifactId>
      <version>5.0-1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.faces</groupId>
      <artifactId>jsf-api</artifactId>
      <version>1.2_04</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.faces</groupId>
      <artifactId>jsf-impl</artifactId>
      <version>1.2_04</version>
      <scope>provided</scope>
    </dependency>
    
    <dependency>
	  <groupId>org.hibernate</groupId>
	  <artifactId>hibernate-core</artifactId>
	  <version>4.1.9.Final</version>
	</dependency>
	    
	<!-- 
	加载本地ojdbc6.jar
	前面三个可以乱填,最好是配上,不然可能会报错
	scope   系统
	scope	路径
	 -->
	<dependency>
	  <groupId>oracle</groupId>
	  <artifactId>orcale</artifactId>
	  <version>3.2.8</version>
		<scope>system</scope>
		<systemPath>C:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar</systemPath>
	</dependency>  
	 
  </dependencies>
  <build>
    <sourceDirectory>${basedir}/src</sourceDirectory>
    <outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>
    <resources>
      <resource>
        <directory>${basedir}/src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webappDirectory>${basedir}/WebRoot</webappDirectory>
          <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


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">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

    <session-factory>
    	<!-- 告诉hibernate使用的是orcle数据库 -->
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <!-- 配置session Factory四要素 -->
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>
        <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
       
       	<!-- 打印日志 -->
    	<property name="show_sql">true</property>
    	<!-- 扫描映射文件 -->
    	<mapping resource="cn/et/hibernate/lesson01/Emp.hbm.xml"/>
    </session-factory>

</hibernate-configuration>



把项目增加HIbernate支持



选择刚刚配置好的hibernate.cfg.xml





生动生成实体类和Mapper映射文件






Emp实体类,要改一下

package cn.et.hibernate.lesson01;

import java.util.Date;

/**
 * Emp entity. @author MyEclipse Persistence Tools
 */

public class Emp implements java.io.Serializable {

	// Fields

	/**
	 * oid对象唯一标识符
	 */
	private Short empno;
	private String ename;
	private String job;
	private Short mgr;
	private Date hiredate;
	private Double sal;
	private Double comm;
	private String sex;
	public Short getEmpno() {
		return empno;
	}
	public void setEmpno(Short empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public Short getMgr() {
		return mgr;
	}
	public void setMgr(Short mgr) {
		this.mgr = mgr;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	public Double getSal() {
		return sal;
	}
	public void setSal(Double sal) {
		this.sal = sal;
	}
	public Double getComm() {
		return comm;
	}
	public void setComm(Double comm) {
		this.comm = comm;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "Emp [comm=" + comm + ", empno=" + empno + ", ename=" + ename
				+ ", hiredate=" + hiredate + ", job=" + job + ", mgr=" + mgr
				+ ", sal=" + sal + ", sex=" + sex + "]";
	}
	
}



Emp.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>

	<!-- 
		ORM映射  类和表的映射
		class  name属性  table表名
	 -->
    <class name="cn.et.hibernate.lesson01.Emp" table="EMP" schema="SCOTT">
        <!-- id标签告诉hibernate  Emp类中empno是oid映射到EMP的主键EMPNO
        precision长度	scale小数
         -->
        <id name="empno" type="java.lang.Short">
            <column name="EMPNO" precision="4" scale="0" />
            <!-- 
            	native(本地策略  根据数据库的不同采用不同的策略)
            		oracle调用数据库的hibernate_sequence.nextal
            		mysql调用表的自动增长
            	assigned(由开发者自己来传递主键的值,不会自动生成)
            	guid调用数据库生成32位guid
             -->
            <generator class="assigned" />
        </id>
        <property name="ename" type="java.lang.String">
            <column name="ENAME">
                <comment>员工姓名</comment>
            </column>
        </property>
        <property name="job" type="java.lang.String">
            <column name="JOB">
                <comment>职位</comment>
            </column>
        </property>
        <property name="mgr" type="java.lang.Short">
            <column name="MGR" >
                <comment>领导编号</comment>
            </column>
        </property>
        <property name="hiredate" type="java.util.Date">
            <column name="HIREDATE">
                <comment>雇佣日期</comment>
            </column>
        </property>
        <property name="sal" type="java.lang.Double">
            <column name="SAL">
                <comment>月薪</comment>
            </column>
        </property>
        <property name="comm" type="java.lang.Double">
            <column name="COMM">
                <comment>奖金</comment>
            </column>
        </property>
        <property name="sex" type="java.lang.String">
            <column name="SEX"/>
        </property>
    </class>
</hibernate-mapping>


测试类

package cn.et.hibernate.lesson01;

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

public class TestHibernate {

	/**
	 * 新增
	 */
	@Test
	public void testInsert(){
		SessionFactory sf = new Configuration().configure("/cn/et/hibernate/lesson01/hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Transaction t = session.beginTransaction();
		Emp emp  = new Emp();
		emp.setEmpno(Short.parseShort("8643"));
		emp.setEname("胖污龟");
		session.save(emp);
		t.commit();
	}
	
	/**
	 * 删除
	 */
	@Test
	public void testDelete(){
		SessionFactory sf = new Configuration().configure("/cn/et/hibernate/lesson01/hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Transaction t = session.beginTransaction();
		Emp emp  = new Emp();
		emp.setEmpno(Short.parseShort("8643"));
		session.delete(emp);
		t.commit();
	}
	
	/**
	 * 修改
	 * 先获取到这个对象,再把要修改的属性set进行,
	 * 再把这个对象设置回去,这样可以保存其它的数据不被丢失
	 */
	@Test
	public void testUpdate(){
		SessionFactory sf = new Configuration().configure("/cn/et/hibernate/lesson01/hibernate.cfg.xml").buildSessionFactory();
		Session session = sf.openSession();
		Transaction t = session.beginTransaction();
		
		Emp emp = (Emp) session.get(Emp.class,Short.parseShort("8000"));
		emp.setSal(Double.parseDouble("20000"));
		session.update(emp);
		t.commit();
	}
	
	
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值