Hibernate_基本配置
来源:互联网 发布:淘宝女式皮鞋特价 编辑:程序博客网 时间:2024/05/17 05:01
hibernate是ORM框架的中典型代表,将要操作的对象转换为sql语句,然后通过jdbc执行SQL。
使用Hibernate开发要先把相对应的jar包引入到web项目中
在src下配置一个hibernate.cfg.xml文件
<!-- 引入头部文件 --><?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的配置文件-><hibernate-configuration> <!-- 配置会话工厂 --> <session-factory> <!-- 驱动名称 下面这个配置的是mysql的 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- URL --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sxt</property> <!-- 用户名 --> <property name="hibernate.connection.username">root</property> <!-- 密码 --> <property name="hibernate.connection.password">123456</property> <!--方言:hibernate根据方言类将对象"翻译"成相对于的sql语句,因为每个数据库的sql语句有的不同,所以这边声明用的哪个的数据库的哪个版本,然后会根据你的声明生成对应的sql语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 是否打印生成的sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 引入映射文件,有两种引入方式: 1.引入xml文件,这种xml文件对于表与表之间的关系会更加的明了,但是会显得文件比较的多,比较的乱 用的是resource引入的,注意:由于不好区分哪个是配置,哪个是文件夹,所有zaihibernate里面用/代表文件夹 2.引入注解的样式,这样的文件会写法相对来说比较的简单,但是表关系不容易理清 用的是class引入的注解 --> <mapping resource="com/sxt/beans/Teacher.hbm.xml" /> <mapping class="com.sxt.beans.Buser" /> </session-factory></hibernate-configuration>
两种引入的方式
第一种:建xml文件
在和bean文件同层目录下下面建一个
javaBean名字+.hbm.xml文件,如实体bean名字是Teacher,名字就是Teacher.hbm.xml
在里面配置如下
<!-- 头部文件和hibernate.cfg.xml文件的头部基本一样,但是所有configuration的地方全部改为mapping,它大写的地方,改的地方也大写 --><?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> <!-- name:实体类的地址+名字 table:可选属性,用于配置与实体类对应的数据库表,如果表面与类名一致,可以省略. 也就table="Teacher"可删--> <class name="com.sxt.beans.Teacher" table="Teacher"> <!-- id标签,数据库中的主键字段 name:配置类中的属性名 column:可选属性,配置与此属性对应的数据库表中的字段名,如果字段名与属性名一致,可以省略. --> <id name="tid" column="tid"> <!-- 是否有自增长字段 ,下面这个是MySql和SQL Server的自增长字段 如果是oracle的自增长字段的话要把identity改为sequence,里面写上 表明_seq(也就是你在数据库中这个表设的自增长序列),如: <generator class="sequence">teacher_seq</generator> --> <generator class="identity"></generator> </id> <!-- 下面为字段名,同上,如果字段名与属性名一致,column="tname"就可省,后面的type也是可省,会自动找对应的来转换 --> <property name="tname" column="tname" type="java.lang.String"></property> <property name="turl" column="turl" type="java.lang.String"></property> <property name="tsex" column="tsex" type="java.lang.Integer"></property> <property name="tage" column="tage" type="java.lang.Integer"></property> <property name="taddr" column="taddr" type="java.lang.String"></property> <property name="tprice" column="tprice" type="java.lang.Double"></property> <property name="birthday" column="birthday" type="java.util.Date"></property> </class></hibernate-mapping>
注:上面可省的地方尽量省略,这样会减轻他的读取和编译的效率
省略完之后就是这样
<?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> <class name="com.sxt.beans.Teacher"> <id name="tid"> <generator class="identity"></generator> </id> <property name="tname"></property> <property name="turl"></property> <property name="tsex"></property> <property name="tage"></property> <property name="taddr"></property> <property name="tprice"></property> <property name="birthday"></property> </class></hibernate-mapping>
第二种:注解方式
package com.sxt.beans;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;/** * Buser entity. @author MyEclipse Persistence Tools *///声明这个Buser.java是个bean实体@Entity//声明对应的数据库中的表的名字为buser表@Table(name="buser")public class Buser implements java.io.Serializable { //声明bid为表中的主键id @Id //声明自增长,下面是mySql的,如果是oracle的为 @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer bid; //声明对应的表中名字是buername @Column(name="busername") private String busername; //声明对应表中的名字是busepwd @Column(name="buserpwd") private String buserpwd; //声明对应表中的名字是nname @Column(name="nname") private String nname; // Constructors /** default constructor */ public Buser() { } /** full constructor */ public Buser(String busername, String buserpwd, String nname) { this.busername = busername; this.buserpwd = buserpwd; this.nname = nname; } // Property accessors public Integer getBid() { return this.bid; } public void setBid(Integer bid) { this.bid = bid; } public String getBusername() { return this.busername; } public void setBusername(String busername) { this.busername = busername; } public String getBuserpwd() { return this.buserpwd; } public void setBuserpwd(String buserpwd) { this.buserpwd = buserpwd; } public String getNname() { return this.nname; } public void setNname(String nname) { this.nname = nname; }}
注:所有注解的jar文件都是javax.persistence的,不要用成org.hibernate.annotations这个包里面的注解
详细注解
阅读全文
0 0
- Hibernate_基本配置
- hibernate_基本开发步骤
- Hibernate_配置C3P0数据源
- Hibernate_配置说明
- hibernate_基本增删改查
- Hibernate_集合类映射配置
- hibernate_抓取策略-检索配置
- Hibernate_配置环境_HQL_事务
- hibernate_核心配置和映射配置
- hibernate_使用c3p0连接池配置
- hibernate_多对多关联关系配置
- Hibernate_@注解
- Hibernate_笔记
- hibernate_简介
- Hibernate_基于单实例配置及使用_初级小结_2_数据库访问
- java 从零开始,学习笔记之基础入门<Hibernate_配置详解>(三十六)
- 基本配置
- 配置基本
- Codeforces Round #452 (Div. 2) B. Months and Years
- HDOJ 1004 Let the Balloon Rise 让气球升起来
- Ajax文件上传
- ASP.net利用DotNetZip压缩文件,用流输出文件细节
- SSL P2325 最小转弯问题 题目
- Hibernate_基本配置
- java--jvm--内存管理
- 2017/12/18 钉钉开放API调用
- linux下安装JDK
- 【JZ2440】自我学习记录【1】【hello world】
- 深度学习: 凸 & 非凸 区别
- 作业10--数组和广义表以及树的基本概念
- 蓝桥杯 算法提高 上帝造题五分钟
- 八种基本数据类型(一)