转载自sunada大大的hibernate入门

1. 环境配置

1.1 hiberante环境配置

hibernate可实现面向对象的数据存储。hibernate的官网:http://hibernate.org/ 官网上选择hibernate ORM,可以下载最新的hibernate,还有配套的document教程 http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/。下载到的hibernate文件夹中有document文档(hibernate\documentation\manual\en-US\html_single)。发现hibernate4.3.1的文件夹中的文档和网站上提供的答案不太一样,官网的文档更详细一些,还附有toturial的源代码。

打开eclipse->windows->preferences->java->buildpath->user libraries,点击new,新建一个library,可取名为hibernate。点击Add JARs,选择hibernate->lib->required中的所有jar文件,另外还需要加上数据库的connector文件。因为使用的是mysql,所以我这里用到的mysql-connector-javajar文件。这个jar文件从哪里得到呢?安装mysql服务器产生的文件夹里面是没有jar文件的。我们需要另下载一个MySQLJDBC jar包。可以从mysql的官网上下载:http://dev.mysql.com/downloads/connector/j/下载后得到一个msi文件,双击及可安装。安装后,默认会产生文件夹C:\Program Files (x86)\MySQL\MySQLConnector J ,这里就有一个mysql-connector-java-x.x.x-bin.jar包了。

1.2 mysql数据库配置

安装mysql服务器,设置root的密码为root。启动mysql服务器,新建数据库hibernate,并新建表student

1

2

3

4

5

# mysql -uroot -proot

> create database hiberante;

> use hibernate;

> create table student(id int primary key, name varchar(20), age int);

> quit;

2. 实例代码

新建一个java工程,假设取名为HibernateHelloWorld。在src下新那一个package,可取名为com.sun.hibernate.model

2.1 类代码

新建一个简单的类,放在com.sun.hibernate.model包下。内容如下:

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

package com.sun.hibernate.model;

 

public class Student {

    private int id;

    private String name;

    private int age;

 

    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 int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

 

}

2.2 配置hibernate配置文件

hibernate\projec\etc中的hiberante.cfg.xml可以作为hibernate的配置文档,或者可使用hibernate\documentation\manual\en-US\html_single\index.html作为模板。在src文件夹下新建一个文件,并命名为hibernate.cfg.xml。(不可命名为其他文件名)最基础的配置文件可参考如下:

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://www.hibernate.org/dtd/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/hibernate</property>

    <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>

         

    <!-- Echo all executed SQL to stdout -->

    <property name="show_sql">true</property>

         

    <!-- Enable Hibernate's automatic session context management -->

    <!--<property name="current_session_context_class">thread</property>-->

         

    <!-- Drop and re-create the database schema on startup -->

    <!-- <property name="hbm2ddl.auto">create</property> -->

         

    <!-- Disable the second-level cache -->

    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

     

    <mapping resource="com/sun/hibernate/model/Student.hbm.xml"/>

         

    </session-factory>

</hibernate-configuration>

mapping resource处的值可根据包名和类名做修改。若类名为Student,则此处的类配置文件必为:Student.hbm.xml

2.3 mapping文件

新建一个文件,命名为Student.hbm.xml,放在com.sun.hibernate.model包下。内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 

<hibernate-mapping package="com.sun.hibernate.model">

    <class name="Student">

        <id name="id"></id>

        <property name="name"></property>

        <property name="age"></property>

    </class>

</hibernate-mapping>

注意文件开始处的配置,此处与hibernate.cfg.xml不一样。如果配置的与hiberante.cfg.xml一样,运行时会提示错误:文档根元素 "hibernate-mapping"必须匹配 DOCTYPE "hibernate-configuration"  ”

2.4 StudentTest测试类

新增Student.javajunit测试类StudentTest.java,放在com.sun.hibernate.model包下代码如下:

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

package com.sun.hibernate.model;

 

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

 

public class StudentTest {

 

    public static void main(String[] args){

        Student s = new Student();

        s.setId(1);

        s.setName("s1");

        s.setAge(1);

         

        Configuration cfg = new Configuration();

        SessionFactory sf = cfg.configure().buildSessionFactory();

         

        Session session = sf.openSession();

        session.beginTransaction();

        session.save(s);

        session.getTransaction().commit();

        session.close();

        sf.close();    

    }

}

2.5. 运行结果

运行StudentTest.java这个类,虽然提示输入成功。去数据库查询后,可发现数据已存储到student数据表中。虽然myeclipse会提示buildSessionFactory()这个函数被deprecated,但实际上程序还是可以运行成功的。

3. 使用annotation

因为使用annotation比较方便,使用annotation就可以不用写XXX.hbm.xml文件了。

3.1 新建类

@后应该出现提示的,如果没有出现,在Window->Preferences->Java->Editor->Content Assist,Auto activation triggers forJava中增加@即可。Teacher.java类与Student类内容基本相同,以@开头的内容为annotation

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

package com.sun.hibernate.model;

 

import javax.persistence.Entity;

import javax.persistence.Id;

 

<span style="color: #000000;">@Entity</span>

public class Teacher {

     

    <span style="color: #000000;">@Id</span>

    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 int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    public int getTitle() {

        return title;

    }

    public void setTitle(String title) {

        this.title = title;

    }

     

    private int id;

    private String name;

    private int age;

    private String title;

     

}

3.2 更新hibernate.cfg.xml

在原hibernate.cfg.xml文件的mapping以下标红内容。

1

2

3

<mapping resource="com/sun/hibernate/model/Student.hbm.xml"/>

<span style="color: #ff0000;"><mapping class="com.sun.hiberante.model.Teacher"/>

</span>

4.3 新建TeacherTest.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

import org.hibernate.cfg.Configuration;

 

public class TeacherTest {

 

    public static void main(String[] args){

        Teacher t = new Teacher();

        t.setId(1);

        t.setName("t1");

        t.setAge(1);

        t.setTitle("middel");

         

        Configuration cfg = new AnnotationConfiguration();

        SessionFactory sf = cfg.configure().buildSessionFactory();

        Session session = sf.openSession();

        session.beginTransaction();

        session.save(t);

        session.getTransaction().commit();

        session.close();

        sf.close();

    }

 

}

3.3 运行

在数据库中新建teacher数据表:

1

2

3

4

# mysql -uroot -proot

> use hibernate;

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

> quit;

运行TeacherTest.java这个类,虽然提示输入成功。去数据库查询后,可发现数据已存储到teacher数据表中。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理、企业管理、简历管理、老师管理、简历投递管理、新闻资讯管理、新闻资讯收藏管理、新闻资讯留言管理、学生信息管理、宣传管理、学生管理、职位招聘管理、职位收藏管理、招聘咨询管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生就业服务平台管理系统可以提高大学生就业服务平台信息管理问题的解决效率,优化大学生就业服务平台信息处理流程,保证大学生就业服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理新闻信息,管理大学生就业服务平台信息,包括考试管理,培训管理,投递管理,薪资管理等,可以管理新闻信息。 考试管理界面,管理员在考试管理界面中可以对界面中显示,可以对考试信息的考试状态进行查看,可以添加新的考试信息等。投递管理界面,管理员在投递管理界面中查看投递种类信息,投递描述信息,新增投递信息等。新闻信息管理界面,管理员在新闻信息管理界面中新增新闻信息,可以删除新闻信息。新闻信息类型管理界面,管理员在新闻信息类型管理界面查看新闻信息的工作状态,可以对新闻信息的数据进行导出,可以添加新新闻信息的信息,可以编辑新闻信息信息,删除新闻信息信息。
基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip基于onehot编码+CNN网络实现5位数验证码识别python源码+数据集+详细注释(可作毕设).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值