先随便新键一个项目生成一个默认的配置文件
主要的架包支持
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();
- }
- }
先随便新键一个项目生成一个默认的配置文件
主要的架包支持
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();
- }
- }