Java-Hibernate - EJB 注解映射
来源:互联网 发布:大数据必须掌握的技术 编辑:程序博客网 时间:2024/05/21 07:01
Hibernate - EJB 注解映射
转载自:https://www.shiyanlou.com/courses/document/992
一、实验环境说明
1. 环境登录
无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou
2. 环境介绍
本实验环境采用带桌面的 Ubuntu Linux 环境,实验中可能会用到桌面上的程序:
- XfceTerminal: Linux 命令行终端,打开后会进入 Bash 环境,可以使用 Linux 命令;
- Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的 HTML/JS 页面即可;
- GVim:非常好用的编辑器,最简单的用法可以参考课程 Vim编辑器。
- Eclipse:Eclipse 是著名的跨平台的自由集成开发环境(IDE)。主要用来 Java 语言开发,但是目前亦有人通过插件使其作为 C++ 和 Python 等语言的开发工具。
3. 环境使用
使用 GVim 编辑器输入实验所需的代码,然后使用 XfceTerminal 命令行环境进行编译运行,查看运行结果,运行后可以截图并分享自己的实验成果,实验楼提供的截图是后台截图,无法作弊,可以真实有效证明您已经完成了实验。
实验记录页面可以在“我的课程”中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(指的是在实验桌面内操作的时间,如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。
二、前言
本次课程使用 EjB 注解映射的方式,来实现上节课的示例。企业级 JavaBean(Enterprise JavaBean, EJB)是一个用来构筑企业级应用的服务器端可被管理组件。EJB 注解表达了和 Hibernate 持久化实体对象同样的概念。
三、新建项目工程
- 说明:Hibernate 以及其他必要文件已经内置在了实验环境中。
(1)导入必要的 JAR 包
新建一个 Java 工程,然后引入必要的 jar 包,右击项目工程,依次选择 Properties->Java Build Path->Libraries->Add External JARs。Hibernate jar 包路径为:/home/shiyanlou/hibernate-release-4.3.9.Final/lib/required/
;mysql-connector jar 包的路径伪: /home/shiyanlou/mysql-connector-java-5.1.35-bin.jar
。最后总的需要的包如下:
(2)新建实体类 User.java
与上节课示例类似,一个用户具有:id(主键),以及 username、password 两个属性。不同的是这里采用的 EJB 注解方式,可以看到 User 类被 @Entity
注解成实体,id 被 @Id
注解成主键。
@Entity
注解可以将一个类声明为一个实体 bean(即一个持久化 POJO 类)
@Id
注解则声明了该实体 bean 的唯一标识属性(对应数据库主键 key)
package shiyanlou.hibernate.ejb3;import javax.persistence.Entity;import javax.persistence.Id;@Entity// @Table(name='')// 数据库中默认会对应生成同名的 Table// 如果要修改 Table 名,使用 @Table(name='')// '' 内为自定义的 Table 名public class User { private int id; private String username; private String password; @Id public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
(3)配置 hibernate.cfg.xml
在 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> <!-- Database connection settings --> <!-- 表示使用 mysql 数据库驱动类 --> <property name='connection.driver_class'>com.mysql.jdbc.Driver</property> <!-- jdbc 的连接 url 和数据库(使用我们之前新建的 hibernate)--> <property name='connection.url'>jdbc:mysql://localhost:3306/hibernate</property> <!-- 数据库用户名 --> <property name='connection.username'>root</property> <!-- 密码(这里为空) --> <property name='connection.password'></property> <!-- 数据库使用的方言 --> <property name='dialect'>org.hibernate.dialect.MySQLDialect</property> <!-- Echo all executed SQL to stdout --> <!-- 设置 打印输出 sql 语句 为真 --> <property name='show_sql'>true</property> <!-- 设置格式为 sql --> <property name='format_sql'>true</property> <!-- 第一次加载 hibernate 时根据实体类自动建立表结构,以后自动更新表结构 --> <property name='hbm2ddl.auto'>update</property> <!-- 映射文件 --> <!-- <mapping resource='shiyanlou/test/hibernate/entity/User.hbm.xml'/> --> <!-- 这里是最明显的不同,映射变成了 User 实体类 --> <mapping class='shiyanlou.hibernate.ejb3.User' /> </session-factory></hibernate-configuration>
可以看到,最大的变化就是映射的变化,由于我们采用了 EJB 注解的方式,因此不再需要 User.hbm.xml 来完成映射,从而映射信息也从 User.hbm.xml 变成了 User 这个实体类。
四、运行
首先要确保 MySQL 数据库中有 hibernate 这个数据库(建立数据库的具体方法见上一节课程),然后编写一个测试类,UserTest.java:
(1)增
package shiyanlou.hibernate.ejb3;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import shiyanlou.hibernate.ejb3.User;public class UserTest { public static void main(String[] args) { Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); User user = new User(); user.setId(1); user.setUsername('admin'); user.setPassword('admin'); session.save(user); session.getTransaction().commit(); session.close(); sessionFactory.close(); }}
Eclipse 控制台输出:
前面提到过,数据库中是生成同名的表,对比查看:
五、小结
本次课程我们利用 EJB 注解映射的方式来实现上一节课的内容。
六、思考
利用 EJB 注解映射,实现其他的(删、查、改)操作。
- Java-Hibernate - EJB 注解映射
- java注解配置hibernate映射关系
- Hibernate反向生成EJB注解
- hibernate注解 关系映射
- Hibernate注解关系映射
- Hibernate注解关系映射
- hibernate注解annotation映射
- Hibernate注解关系映射
- Hibernate注解映射详解
- Hibernate注解映射类型
- Hibernate关系注解映射
- Hibernate映射关系注解
- hibernate关系注解映射
- Hibernate 4.3 注解映射
- Hibernate 注解映射
- hibernate注解关系映射
- hibernate关联映射注解
- Hibernate的注解映射
- 关于两个整数的交换的几种写法
- switch
- Git远程操作详解
- javascript生成二维码
- POJ 2309 BST 【lowbit()过】
- Java-Hibernate - EJB 注解映射
- 《秘密》卷一:秘密-健康的秘密
- 拖动图片移动
- bootstrap中六种表格样式
- jsp常用内置对象
- LintCode-剑指Offer-(376)二叉树路径求和
- Java-Hibernate 一对多关系映射
- acm2028
- 堆和栈的区别