一、什么是 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. (6).NET CORE微服务 Micro-Service ---- AOP框架

    AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...

  2. Morley's Theorem

    题解: 计算几何基本操作 注意叉积的时候字母写的顺序 代码: #include <bits/stdc++.h> using namespace std; #define rint regi ...

  3. lojround6

    花团 线段树分治裸题 给出了结束时间跟离线没区别 「LibreOJ Round #6」花火 首先在第一次使用交换是显然的 然后统计逆序对暴力是n^2的(前缀和优化) 因为交换两个点改变的只有x< ...

  4. 在vs.net 2010,2015 等版本,给JS函数添加代码提示\注释

    经常编写JS的朋友常常会因为函数写多了,隔一段时间就会忘记了函数的用途,或者函数里带的参数作用情况,这个时候会联想到VS工具里的强大提示功能,多希望也能在JS上实现呀,告诉你,这个想法并不是多难,VS ...

  5. python基础——高级特性

    1.切片  切片: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] >>> L[:3] ['Michael ...

  6. Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境

    一直想在持续集成方向学习并研究一番,近期正准备结合jmeter+ant+jenkins做自动化接口测试,在学习的同时,正好实践一番,毕竟实践才是真理. 在搭建jmeter+ant+jenkins环境有 ...

  7. ASP.NET MVC不可或缺的部分——DI及其本质工作分析

    IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否是单例对象还是每次都生成一个新的对象. DI实现其实很简单,首先设计类来实现接口, ...

  8. react编码规范

    1.每个文件只写一个组件,但是多个无状态组件可以放在单个文件中: 2.有内部状态,方法或要对外暴露ref的组件,用类式组件: 3.无内部状态,方法或无需对外暴露ref的组件,用函数式组件: 4.有内部 ...

  9. for循环以及数据类型

    一.for循环(迭代式循环) 了解:当我们在写代码时,如果代码是纯运算的代码,会占用大量的CPU,如果是I/O代码,则不会占用CPU. for i in range(10):  #可以是任意类型(字符 ...

  10. AGC 005D.~K Perm Counting(容斥 DP 二分图)

    题目链接 \(Description\) 给定\(n,k\),求 满足对于所有\(i\),\(|a_i-i|\neq k\)的排列的个数. \(2\leq n\leq 2000,\quad 1\leq ...