Annotation 的第一个工程
一、什么是 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 的第一个工程的更多相关文章
- 用Firefly创建第一个工程
原地址:http://blog.csdn.net/uxqclm/article/details/10382097 安装完成之后,在python script包中就存在 firefly-admin的工具 ...
- MyGui笔记(1)建立第一个工程
记录下学习 MyGui的一些笔记,从建立第一个工程开始. 步骤: 1.右键MYGUI解决方案,添加→新建项目,选择“Win32 项目”,名称为:TestHello.下一步,勾选“空项目”. 2.设置工 ...
- hibernate 的第一个工程
一.什么是Hibernate? Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hiber ...
- TeamCity : 配置第一个工程
前面我们已经创建了TeamCity Server 和一个 Agent,接下来我们为一个.net core 控制台程序配置自动化的编译. 创建 .net core 项目 我们在本地创建一个简单的 .ne ...
- Struts2第一个工程helloStruts极其基本配置
前面已经准备好了Struts-2.3.15,现在就可以直接搭建Struts2的工程了.前面http://blog.csdn.net/huangchnegdada/article/details/917 ...
- NodeJS安装第一个工程
一.刚接触Node.js,下载好安装包后,一路Next,安装好后,结构目录如下 在命令行窗口输入node -v 和npm -v 二.建立一个Node.js工程 1.(控制台窗口)全局安装了expres ...
- 二、认识Xcode(第一个工程:Hello world)
到一个未知的世界去冒险,怎么可以不熟悉自己的武器装备呢?况且我们现在也就Xcode这一样装备,攻击防御全靠它,要是关键时刻使不出技能,那不gg了? 所以接下来我们会大致介绍Xcode的常用界面,并在最 ...
- springboot——我的第一个工程
前言:使用Spring Boot 微服务架构有一段时间了,打算从今天开始记录使用过程. 一.Spring Boot介绍: 简介:Spring Boot 框架的产生,是为了方便我们简化Spring 框架 ...
- RTT第一个工程
第一个RTT工程 1. 配置工程 选择芯片STM32F103C8(其包含该芯片的Flash及SRAM介绍): Jlink SW模式 output->Debug info/Browse info ...
随机推荐
- C#版本与Framework的关系
C# 1.0 released with .NET 1.0 and VS2002 (January 2002) C# 1.2 (bizarrely enough); released with .NE ...
- [转] 跨域资源共享 CORS 详解
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...
- Refs & DOM
Refs 提供了一种访问在 render 方法中创建的 DOM 节点或 React 元素的方式. 在典型的 React 数据流中, 属性(props)是父组件与子代交互的唯一方式.要修改子组件,你需要 ...
- 期货大赛项目|二,DAL详解
接口层就不重点讲述了,直接DAL层 DAL层 using System; using System.Collections.Generic; using System.Linq; using Syst ...
- shell常用监控脚本
1.cpu空闲脚本 top -b -n1 |grep 'Cpu'|awk '{print $5}'|sed 's/%//'|sed 's/id,//' 变量赋值 cpu_id='top -b -n1 ...
- python全栈开发day73-Django认证系统
一.Form组件 day73 2018-08-10 1. 内容回顾 1. form表单组件 1. 常用字段 1. CharField() 2. ChoiceField() 2. 参数或配置 1. la ...
- Python select解析
一.首先列一下,sellect.poll.epoll三者的区别 1.select a.select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监控多个文件描述符的数组,当 ...
- sql对于字符串的处理
- 启动tomcat出现Removing obsolete files from server... Could not clean server of obsolete ……错误
在Eclipse启动tomcat出现"Removing obsolete files from server... Could not clean server of obsolete …… ...
- 爬虫1 socket方式下载一张图片
import socket import re client = socket.socket() # 图片url img_url = 'https://img03.sogoucdn.com/app/a ...