`

day_01hibernateHelloWorld

阅读更多

星期一, 十二月 28, 2015 23:01:37

 

课程内容

1.helloworld

   a)xml

   b)annotation

 

2.hibernate原理模拟

  ----什么是O/R mapping以及为什么要有O/R mapping

3.

client-------app server(tomcat)---------struct(分发)-----------action-------------service(业务逻辑处理)-------------DAO------------model(实体类)

 

原来的:

client----------1.new()------------------>Student

2.jdbc

 

 

面向对象的替代面向关系的这层的逻辑。

用hibernate编程用面向对象的方法。

 

 

hibernate:

client 

 1.new()   Student

 2. configuration

 3.buildsessionFactory()               SessionFactory

 4.openSesiion()    ----createMessage()-----session

5.save(Student s)()   pesist()DB

 

hibernate帮我们屏蔽了关系型,直接使用面向对象的方法。

 

 

面向对象的写法---hibernate---面向关系的数据库

 

 

风格

1.先脉络,后细节

2.先操作,后原理

3.重Annotation,轻xml配置文件

    JPA   java持久化api

    hibernate-extension

 

 

资源:

1.http:www.hibernate.org

 

hibernate-annotation-3.4

hibernate-distribution-3.3

slf4j-1.5.8

 

 

 

一、new一个java project,名为hibernate_0100_HelloWorld

2.学习建立user library -hibernate,并加入相应的jar包

    2.1在windows-->preference-->java-->user library

         new自己包,名称为hibernate-->add jars

    2.2在该libraries中加入hibernate所需jar包

        1.hibernate core    

        2./required

        3.slf-nop.jar

3.引入mysql的jdbc驱动包

4.在mysql中建立对应的数据库以及表

     1.create database hibernate

     2.user hibernate

     3.create table Student(id int primary key,name varchar(20),age int);

5.建立hibernate配置文件hibernate.cfg.xml

    1.从参考文档中copy  

    2.修改赌赢的数据库连接

     3.注释掉暂时用不上的内容

6.建立Student类

7.建立Student映射文件Student.hbm.xml

  参考文档

 

8.将映射文件加入到hibernate.cfg.xml

  参考文档

9.写测试类Main,在Main中对Student对象进行直接的存储测试

    参考文档

 

 

二、在mysql中创建数据库和表

 

create database hibernate;

use hibernate;

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

 

 

hibernate-annotations-3.4.0 GA

hibernate-distribution-3.3.2.GA-dist

slf4j-1.5.8

 

原理

object relatation的sql语句

从sql里拿出来再进行组装成object

 

建立java project

window-->preference-->java-->user libraries

 

需要jar   在distribution中的hibernate3.jar

G:\asiainfo\web_hp2\Hibernate3.3.2\jar\hibernate-distribution-3.3.2.GA\lib\required  所以的jar

 

G:\asiainfo\web_hp2\Hibernate3.3.2\jar\slf4j-1.5.8  slf4j-nop-1.5.8.jar

 

在src中新建file

hibernate.cfg.xml

 

数据库配置连接

com.mysql.jdbc.Driver

jdbc:mysql://localhost/hibernate

root

root

package com.zhuhw.hibernate;

public class Student {
		private int 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 int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
		private String name;
		private int age;
}

 

 

 

 

 

 

 

 

 

 

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

        <!-- 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 -->
       <!--   <property name="hbm2ddl.auto">update</property>-->
		<!-- hibernate去哪里找这个配置文件 -->
        <mapping resource="com/zhuhw/hibernate/Student.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

 

 

 

 

 

 

 

 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 找不到entity,是因为这个类没有改包名 -->
<hibernate-mapping package="com.zhuhw.hibernate">
	<class name="Student" table="student" >
	<!-- id主键;name=id对应的是Student中的getid() -->
		<id name="id" ></id>
		<property name="name" />
		<property name="age" />
		<!-- hibernater知道了怎么将class与表中的字段对应到一起了 -->
	</class>
</hibernate-mapping>

 

 

 

 

 

 

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.zhuhw.hibernate.Student;


public class StudentTest {
	public static void main(String[] args){
		Student s = new Student();
		s.setId(1);
		s.setAge(23);
		s.setName("ll");
		
		Configuration cf = new Configuration();
		SessionFactory sf = cf.configure().buildSessionFactory();
		Session session = sf.openSession();
		//在hibernate中执行操作要在一个事务里面
		session.beginTransaction();
		session.save(s);
		session.getTransaction().commit();
		session.close();
		sf.close();
		
	}
}

 

 

运行结果:

Hibernate: insert into student (name, age, id) values (?, ?, ?)

1
1
分享到:
评论

相关推荐

    eq_data_30_day_m1.rar

    标题中的"eq_data_30_day_m1.rar"是一个压缩文件,通常用于存储多个相关文件或数据集。根据描述,这个文件与《Python:从入门到实践》这本书的第16章有关,这意味着它可能包含了一个与Python编程、数据分析或者可视化...

    RP_LAST_DAY_OF_MONTHS.doc

    标题中的"RP_LAST_DAY_OF_MONTHS.doc"似乎是一个文档文件名,通常用于记录或说明某个特定的函数、过程或在IT环境中使用的脚本。在这个情况下,"RP_LAST_DAY_OF_MONTHS"很可能是一个函数或者宏,它的主要功能是计算或...

    day01_eesy_01mybatis.zip

    学习笔记——mybatis的起步(1) 1.什么是框架? 他是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能。...

    品优购_day01_课程讲义_V1.2.pdf

    品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程讲义_V1.2.pdf品优购_day01_课程...

    eq_data_30_day_m1.json

    30天全球地震数据集

    自学C语言的day_01

    自学C语言的day_01

    01day_01mybatis_java_

    在 "01day_01mybatis_java_" 这个学习资料中,我们将会深入理解 MyBatis 的核心概念和基本使用方法。MyBatis 的主要组成部分包括: 1. **SqlSessionFactory**: 这是 MyBatis 的核心对象,用于创建 SqlSession,它是...

    unity3d 白天夜晚切换插件 Day_Night_Cycle.unitypackage

    "Day_Night_Cycle.unitypackage" 是一个专门为Unity3D设计的白天夜晚切换插件,它允许开发者轻松地在游戏世界中实现逼真的时间流逝效果。 该插件的核心功能在于其渐变改变天空盒的技术。天空盒(Skybox)是Unity3D...

    read_amsr_day_v7_gif_matlab_png_

    标题“read_amsr_day_v7_gif_matlab_png_”暗示了这是一个关于使用MATLAB处理AMS(R)(Advanced Microwave Scanning Radiometer)卫星数据,特别是每天的数据,并将其转化为GIF或PNG图像的过程。AMSR是地球观测卫星上...

    springmvc_day01_start.zip

    在这个"springmvc_day01_start.zip"压缩包中,我们可以找到一个详细的SpringMVC入门实例,涵盖了从环境搭建到代码编写的全过程。 首先,环境搭建是学习任何技术的第一步。对于SpringMVC,这通常包括以下几个部分: ...

    day_45_bookstore.zip_day_45_bookstore_图书管理

    本项目名为“day_45_bookstore”,是一个使用MVC(Model-View-Controller)框架编写的在线图书管理系统。通过这个系统,用户可以方便地进行图书的增删改查操作,极大地提高了图书管理的效率。 首先,我们来深入理解...

    tas_day_CESM2-WACCM_ssp126_r1i1p1f1_gn_20350101-20441231.nc

    CMIP6温度数据

    Day_five.rar_day_five_学习计划_日程安排系统_日程管理

    标题中的“Day_five.rar_day_five_学习计划_日程安排系统_日程管理”提示我们这是一个关于日程管理的学习资源,可能是一个项目或教程的第五天内容,涉及到创建或使用日程安排系统的知识。描述进一步确认了这个系统是...

    MySQL_Exploit.rar_0day_C 0day_Exploit_mysql c

    "MySQL_Exploit.rar_0day_C 0day_Exploit_mysql c"这个标题暗示了存在一个针对MySQL的0day攻击方法,可能是通过C语言编写的代码实现。 描述中提到"MySQL_Exploit 0day 放好久了 今天传上来",意味着这个漏洞可能...

    time_of_day_156m.rar_time of day_时间戳守时程序

    标题中的“time_of_day_156m.rar_time of day_时间戳守时程序”表明这是一个与时间戳和守时程序相关的项目。这个程序可能是为了在特定环境(比如156MHz的工作频率)下准确获取当前时间而设计的。156MHz通常与高速...

    PyPI 官网下载 | tracardi_day_night_split-0.1.2-py3-none-any.whl

    《PyPI官网下载:tracardi_day_night_split-0.1.2-py3-none-any.whl详解》 PyPI(Python Package Index)是Python社区的重要资源库,它为全球Python开发者提供了一个集中下载和分享Python软件包的平台。在PyPI上,...

    15_day_mini

    15_day_mini

    JavaScript Day_01

    javascript学习第一天笔记

    first_day_of_school

    first_day_of_school

    day_wise_datashrink.csv

    day_wise_datashrink.csv

Global site tag (gtag.js) - Google Analytics