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)、注释掉暂时用不上的内容 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

<?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 类的内容为: 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

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、写一个测试类,如下图:

 

测试类的内容为:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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语句查看数据,如下图:

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值