一、什么是 Annotation?

java.lang.annotation,接口 Annotation。对于Annotation,是Java5的新特性,JDK5引入了Metadata(元数据)很容易的就能够调用Annotations。Annotations提供一些本来不属于程序的数据,比如:一段代码的作者或者告诉编译器禁止一些特殊的错误。An annotation 对代码的执行没有什么影响。Annotations使用@annotation的形式应用于代码:类(class),属性(attribute),方法(method)等等。一个Annotation出现在上面提到的开始位置,而且一般只有一行,也可以包含有任意的参数。

二、Annotation 有什么作用?

在创建EJB组件时,必需提供一些定义,使得EJB组件使用一些服务例如:安全服务,持久化服务,事务服务。EJB容器可以提供这些服务,这样EJB只要实现业务逻辑就可以了。但是说到底EJB容器使用EJB组件的元数据来提供这些服务,在以前EJB的元数据是以XML配置文件形式出现的,这些配置文件与EJB源文件是分开的。      EJB的部署人员无法了解EJB本身的信息,如果EJB组件的创建者用注。

三、Annotation 第一个工程,操作步骤如下:

1、建立新的 java 项目,名为:annotation_test,如下图:

2、加入响应的 jar 包

a)、菜单 Window --> Preferences --> Java --> Build Path --> User Libraries,点击按钮 “New”,命名为 “annotation”,如下图:

b)、选择“annotation”,点击“Add External JARs...”,把下面的这些 jar 引入添加进去,分别是:

hibernate-distribution\3.3.2\hibernate-distribution-3.3.2.GA\hibernate3.jar(核心JAR包

hibernate-distribution\3.3.2\hibernate-distribution-3.3.2.GA\lib\required\ 目录下的所有 jar 包

slf4j-1.5.8\slf4j-nop.jar

hibernate-annotations\3.4.0\hibernate-annotations-3.4.0.GA\hibernate-annotations.jar

hibernate-annotations\3.4.0\hibernate-annotations-3.4.0.GA\lib\ejb3-persistence.jar

hibernate-annotations\3.4.0\hibernate-annotations-3.4.0.GA\lib\hibernate-commons-annotations.jar

点击按钮 “确定”,

如下图:

3、引入 mysql 的 JDBC 驱动包

      a)、菜单 Window --> Preferences --> Java --> Build Path --> User Libraries,点击按钮 “New”,命名为 “Driver”,然后点击 “Driver”,点击按钮 “Add External JARs...”,点击按钮 “确定”, 如下图:

 b)、选择“driver”,点击“Add External JARs...”,把 Driver\MySql\mysql-connector-java-5.1.47\mysql-connector-java-5.1.47\mysql-connector-java-5.1.47.jar 引入添加进去,如下图:

4、将驱动引入项目工程,点击项目(hibernate_test),鼠标右击,选择 Build Path --> Add Libraries... --> User Library,点击按钮 “Next”;

      注意:选中工程,如果右键选中 Build Path 里面没有 Add Libraries... ,右键工程选中 Configure Build Path ,进入后,左边栏选中 java Build Path,再选中右边的 Libraries,再选 Add Libraries... ,然后再勾选 “annotation” 与 “driver” 添加就可以了

      如下图:

5、登陆本地 MySQL,创建数据库 annotation,并使用 annotation 库,在创建 teacher 表,步骤如下:

      mysql -hlocalhost -uroot -p,敲回车,然后输入密码

      create datebase annotation;

      use annotation;

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

6、建立 hibernate 配置文件 hibernate.cfg.xml,这个配置文件应建立在 src 目录下面,如下图:

hibernate.cfg.xml 文件里面的内容为:

注意:  

            a)、从参考文档中拷贝

            b)、修改对应的数据库连接

            c)、注释掉暂时用不上的内容

<?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">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/annotation</property> <!-- annotation是数据库的名字 -->
<property name="connection.username">root</property>
<property name="connection.password">root</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> <!-- Drop and re-create the database schema on startup -->
<!-- hbm2ddl.auto : Hibernate-mapping Data definition language.automatic -->
<!-- create: 表示如果数据库里面没有这张表, 就会自动去创建这张表 -->
<property name="hbm2ddl.auto">create</property> <mapping class="annotation.model.Teacher"/> <!-- 这个是Annotation的写法 -->
</session-factory>
</hibernate-configuration>

  

7、建立 Teacher 类,如下图:

Teacher 类的内容为: 

package annotation.model;

/**
* JDBC 是一个标准
* MySql Driver/Oracle Driver 等都是 JDBC 的实现
* 或者说 hibernate 是 JDBC 的实现
*/ import javax.persistence.Entity; // 从包名可以看出, 它不依赖hibernate
import javax.persistence.Id; @Entity
public class Teacher { private int id;
private String name;
private String title; @Id // 把注解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;
}
}

8、在 hibernate.cfg.xml 中建立映射 <Mapping class=../>,将 <mapping class="annotation.model.Teacher"/> 添加到 配置文件中,如下图:

9、写一个测试类,如下图:

测试类的内容为:

package annotation.test;

/**
* 目前用 main 来测试
*/ import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import annotation.model.Teacher; public class TeacherTest { public static void main(String[] args) { Teacher t = new Teacher();
t.setId( 1 );
t.setName( "I Love you" );
t.setTitle( "高级" ); Configuration cfg = new AnnotationConfiguration();
SessionFactory sf = cfg.configure().buildSessionFactory();
Session session = sf.openSession(); // 在hibernate里面, 所有的操作都应放在事务里面
session.beginTransaction(); // 将数据保存到数据库里面
session.save( t ); // 提交数据
session.getTransaction().commit(); // 关掉数据库连接
session.close();
sf.close(); String str = "\u4ea4\u6613\u6210\u529f";
System.out.println( str );
}
}

10、如果测试类成功执行,则可以通过sql语句查看数据,如下图:

Annotation 的第一个工程的更多相关文章

  1. 用Firefly创建第一个工程

    原地址:http://blog.csdn.net/uxqclm/article/details/10382097 安装完成之后,在python script包中就存在 firefly-admin的工具 ...

  2. MyGui笔记(1)建立第一个工程

    记录下学习 MyGui的一些笔记,从建立第一个工程开始. 步骤: 1.右键MYGUI解决方案,添加→新建项目,选择“Win32 项目”,名称为:TestHello.下一步,勾选“空项目”. 2.设置工 ...

  3. hibernate 的第一个工程

    一.什么是Hibernate? Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hiber ...

  4. TeamCity : 配置第一个工程

    前面我们已经创建了TeamCity Server 和一个 Agent,接下来我们为一个.net core 控制台程序配置自动化的编译. 创建 .net core 项目 我们在本地创建一个简单的 .ne ...

  5. Struts2第一个工程helloStruts极其基本配置

    前面已经准备好了Struts-2.3.15,现在就可以直接搭建Struts2的工程了.前面http://blog.csdn.net/huangchnegdada/article/details/917 ...

  6. NodeJS安装第一个工程

    一.刚接触Node.js,下载好安装包后,一路Next,安装好后,结构目录如下 在命令行窗口输入node -v 和npm -v 二.建立一个Node.js工程 1.(控制台窗口)全局安装了expres ...

  7. 二、认识Xcode(第一个工程:Hello world)

    到一个未知的世界去冒险,怎么可以不熟悉自己的武器装备呢?况且我们现在也就Xcode这一样装备,攻击防御全靠它,要是关键时刻使不出技能,那不gg了? 所以接下来我们会大致介绍Xcode的常用界面,并在最 ...

  8. springboot——我的第一个工程

    前言:使用Spring Boot 微服务架构有一段时间了,打算从今天开始记录使用过程. 一.Spring Boot介绍: 简介:Spring Boot 框架的产生,是为了方便我们简化Spring 框架 ...

  9. RTT第一个工程

    第一个RTT工程 1. 配置工程 选择芯片STM32F103C8(其包含该芯片的Flash及SRAM介绍): Jlink  SW模式 output->Debug info/Browse info ...

随机推荐

  1. EF Core Migration

    //添加migrations dotnet ef migrations add [名称] //根据model更新sql表结构 dotnet ef database update //删除最新的migr ...

  2. Windows下80端口被进程System占用的解决方法

    最近电脑时不时就发生了80端口被占用的情况,简单百度解决后,当重启电脑的时候又发生被占用的情况.今天非常幸运的是,发生了80端口和8080端口都被占用了情况,忍无可忍决定下定决心解决这个坑爹的问题,经 ...

  3. 【转】Windows Server 2008 R2下安装 .net framework3.5

    原文地址:http://hi.baidu.com/tonny_dxf/item/6831bcdc3d7c06e7b2f7777c      [你必须用角色管理工具安装.net framework3.5 ...

  4. BZOJ4456/UOJ#184[Zjoi2016]旅行者 分治 最短路

    原文链接http://www.cnblogs.com/zhouzhendong/p/8682133.html 题目传送门 - BZOJ4456 题目传送门 - UOJ#184 题意 $n\times ...

  5. mysql 备份 恢复

    mysqldump -h127.0.0.1 -uroot -p123456 --databases dbname > e:/mysqlbak/dbname.dump不用新建数据库mysql -h ...

  6. PAT (Basic Level) Practise - 我要通过!

    “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...

  7. Git submodule 仓库中包含另外的仓库(子仓库)

    Git submodule 仓库中包含另外的仓库(子仓库) 添加 submodule 在父仓库 git 目录下: git submodule add ssh://ip/[path]/xxx.git 注 ...

  8. 大家的备忘录——xpage_在线引用jQuery

    <xp:this.resources> <xp:dojoModule name="dojo.fx"></xp:dojoModule> <x ...

  9. Nowcoder contest 370B Rinne Loves Graph 【分层图最短路】

    <题目链接> 题目大意: Island 是有一些奇怪的城镇和道路构成的(题目需要,游戏党勿喷),有些城镇之间用双向道路连接起来了,且每条道路有它自己的距离.但是有一些城镇已经被派兵戒严,虽 ...

  10. HDU 3639 Hawk-and-Chicken (强连通缩点+DFS)

    <题目链接> 题目大意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则:投票具有传递性,A支持B,B支持C,那么C获得2票(A.B共两 ...