Hibernate---第一个helloworld程序 (XML版本, annotation版本)

Hibernate作为JPA的一种实现,jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两套注解。hibernate对jpa的支持够足量,在使用hibernate注解建议使用jpa

XML版本过程:

新建工程, 导入hibernate包, 数据库包, 建立数据库表, 新建model类, 测试类, 新建src下hibernate.cfg.xml, model 类下 Student.hbm.xml

annotation版本过程:

新建工程, 导入hibernate包, 数据库包, 建立数据库表, 新建model类 (里面加入@Entity(javax), 和@Id (主键)), 测试类, 新建src下hibernate.cfg.xml(加入映射)

所以annotation比较简单.

XML版本具体过程:

1. new->java project : hibernate_0100_HelloWorld

2. 引入所有Hibernate的jar包:

  1. preferrence->java->build path->user library-> new("hibernate")-> Add JARs (hibernate3, antlr, commons-collections, dom4j, javassist, jta,slf4j-api, slf4j-nop)

2. 右键项目 build-> add libraries->user library->"hibernate"

3. 引入数据库包 build-> add external archieves-> mysql-connector....

4. 建立数据库的表

create database hibernate;
use hibernate;
create table student(id int primary key, name varchar(20), age int);

5. new class: Student    package: com.bjsxt.hibernate.model

package com.bjsxt.hibernate.model;

public class Student {
	private int id;
	private String name;
	private int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

6.  new class: StudentTest.java     package: default

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

import com.bjsxt.hibernate.model.Student;

public class StudentTest {
	public static void main(String[] args) throws Exception{
		Student s =new Student();
		s.setId(2);
		s.setName("lisi");
		s.setAge(30);

		Configuration cfg=new Configuration();
		SessionFactory sf=cfg.configure().buildSessionFactory(); //默认找hibernate.cfg.xml,然后产生一个connection工厂
		Session session =  sf.openSession();
		session.beginTransaction();
		session.save(s);
		session.getTransaction().commit();
		session.close();
		sf.close();
	}
}

7. 在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>

        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">linda0213</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- JDBC connection pool (use the built-in) -->
		<!--<property name="connection.pool_size">1</property> -->

        <!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate‘s automatic session context management -->
		<!--<property name="current_session_context_class">thread</property> -->

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
		<!--<property name="format_sql">true</property> -->

        <!-- Drop and re-create the database schema on startup
        <property name="hbm2ddl.auto">update</property>
		 -->
		<!--<mapping class="com.bjsxt.hibernate.model.Student"/> -->
        <mapping resource ="com/bjsxt/hibernate/model/Student.hbm.xml"/>
    </session-factory>

</hibernate-configuration>

8. 在model下new Student.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.hibernate.model">
    <class name="Student" table="student">
        <id name="id"></id>
        <property name="name"/>
        <property name="age"/>
    </class>
</hibernate-mapping>

9. run -> java application.

运行出错的话一般还需要加入两个包: cglib-nodep-2.1_3.jar, commons-logging.jar

  

annotation版本具体过程:

1. 加入annotation相关的jar包(hibernate-annotations, ejb3-persistence, hibernate-commons-annotations )

2. 创建teacher表:

use hibernate;
create table teacher(id int primary key, name varchar(20), title varchar(10));

3. 创建一个新的model 类, Teacher.java:

里面加入@Entity(javax), 和@Id (主键)

package com.bjsxt.hibernate.model;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Teacher {
	private int id;
	private String name;
	private String title;

	@Id
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
}

3. 建立一个新的测试类TeacherTest.java;

import javax.persistence.Entity;

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

import com.bjsxt.hibernate.model.Teacher;

@Entity
public class TeacherTest {
	public static void main(String[] args) throws Exception{
		Teacher t =new Teacher();
		t.setId(3);
		t.setName("ww");
		t.setTitle("high");

		Configuration cfg=new AnnotationConfiguration();
		SessionFactory sf=cfg.configure().buildSessionFactory(); //默认找hibernate.cfg.xml,然后产生一个connection工厂
		Session session =  sf.openSession();
		session.beginTransaction();
		session.save(t);
		session.getTransaction().commit();
		session.close();
		sf.close();
	}
}

4. hibernate-cfg.xml里加入这句话:

<mapping class="com.bjsxt.hibernate.model.Teacher"/>

  

  

 

  

时间: 2024-10-05 04:09:39

Hibernate---第一个helloworld程序 (XML版本, annotation版本)的相关文章

SpringMVC基础入门,创建一个HelloWorld程序

ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!--configure the setting of springmvcDispatcherServlet and configure the ma

mybatis 的第一个 HelloWorld 程序学习

1.准备工作: a.在 MYSQL 中新建一个 mybatis 数据库,并且创建一个 table,在这个表格中录入一条记录. 注:我使用的是 SQLyog,你们也可以使用命令行直接创建库和表. 2.在 eclipse 中创建一个 java 工程: - 创建一个名为 Employee 的 bean 类,并且在这个工程的路径下创建一个 lib 文件夹,用于存放需要的 jar 包. (需要的 jar 包为 mybatis-3.4.1.jar .mysql-connector-java-5.1.37-b

springboot之搭建第一个helloworld程序

1.下载基本框架 在网站:https://start.spring.io/ 全部默认,基本没有改动 选择依赖,当然也可以自己在pom.xml加,我们直接在这里选择. 只选择Spring Web Starter(可以了解下,Lombok,在写实体时很方便) 点击Generate the project -Ctrl + 将会下载生成demo.zip 2.Maven安装依赖 解压demo.zip 在demo目录打开命令行工具(在demo目录下,按住shift键,同时点击鼠标右键,点击“在此处打开Pow

Android Studio新建一个HelloWorld 程序(App)

Android Studio新建一个HelloWorld程序(App) 新建 或者直接启动程序(注:如果已有程序,此方法会直接打开最近一次关闭从程序) 更改App名 选择App运行平台 选择模板 更改主视图名 等待程序编译 此过程需要较长时间,耐心等待- 直到底部状态栏不再有动作执行. AS默认打开主视图代码 打开设计界面 运行程序 首先手机开启调试模式,并连接电脑 注1:此过程有可能会因为某些原因App不能正常运行 注2:此过程需要较长时间,耐心等待,直到手机上App启动成功 程序运行完成 G

Node.js入门以及第一个helloworld程序

1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的.node.js的出现,就像是思维的极限反转带来的性能极致,它就像是一个玩具一样,如果把传统的jsp必做战斗机的话,那么node.js就是一个无人机! 2.Node.js的三大特性 单线程 事件驱动 非阻塞I/O Node.js的这三个特性,缺一不可,正是这些特性导致他的性能高效.当别人考虑如何进行服

Linux下JNI的简单使用---第一个helloworld程序

一.环境介绍 VMwareWorkstation9.0 + RedHat5.1Enterprise + jdk1.7.0 二.第一个使用JNI的hello程序步骤 1.编写一个使用jni调用的简单Java程序 package org.bt.test public class HelloJni {             private native String getHello(); //申明本地函数             //加载共享库             static {      

(二)手动配置第一个HelloWorld程序

上例的HelloWorld是由Android sutudio 自动生成的,现在我们手动来配置. 1. 重新创建工程 2. 创建空的Activity 生成的MainActivity.java 文件: package com.shyroke.myhelloworld; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompa

账号:Justso111 正常填写注册信息,但是具体的应用过程不太熟络,创建了一个Helloworld程序,暂时未碰到问题。

1.介绍自己:内容包括基本信息[姓名.学号.班级.兴趣爱好],个人编程能力:你(大约)写过多少行代码(什么语言).开发过什么程序(若有链接.截图请给出) 姓名:征晓露 学号:1425052048 班级:信管142 兴趣爱好:听歌.跳舞 个人编程能力:用C++.Javal语言写过多行代码,但是编程能力较弱 没有开发过程序. 2.介绍自己的 码云 注册流程:内容包括码云 账号,自己的注册经过(碰到问题如何解决的): 账号:lunaonlyone 正常填写注册信息,但是未能注意自己的地址要申请,是老师

在Linux最小系统上编译运行第一个helloworld程序

一.安装和使用SSH软件 1.安装SSH 软件 1)SSH 软件压缩包可以在网盘下载,下载后解压,进入解压出来的文件夹,如下图. 2)单击上图中的“SSHSecureShellClient-3.2.9.exe”,开始安装 3)如下图,生成桌面图标. 1.使用SSH 软件传文件 1)进入虚拟机的Ubuntu 系统,使用ifconfig 命令,确定Ubuntu 的IP 地址.如下图所 示,用户的IP 地址,需要自己确认,这里只是以本机的IP 为例. 2)双击快捷方式“SSH Secure File