刚刚看了马士兵讲解的Hibernate的视频教程,现在吧学习笔记整理出来。
问题描述:
做一个HelloWorld的Demo程序
问题求解:
一、创建数据库和表
Create Database hibernate;
Create Table sutdent(id int primary key, name varchar(20), age int);
二、写与之相关的Model类
package com.liberD.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;
}
}
三、添加相应的Hibernate的Jar包和数据库驱动Jar包
注:把hibernate3.jar和lib下的required中的包全部加入。数据库驱动视数据库而定。
MyEclipse中添加Jar的方法:
MyEclipse添加JAR包的新方法:Windows—>Preferences—>Java—>Build Path—>User Libraries—>New,创建一个新的JAR包集合。然后添加相应的JAR包。
选中需要添加JAR包的项目,右击,选Build Path—>Add Libraries—>User Libraries再选合适的OK了!
四、在Model类所在的包(此处为:com/liberD/hibernate/model/)添加映射配置文件Student.hbm.xml。格式如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.liberD.hibernate.model">
<class name="Student" table="student">
<!-- 如果是Model类和表名一样,则table属性可以省略 -->
<id name="id" column="id"></id>
<!--
指定数据库主键,
name指定Model类中的属性,column属性指定表中的列。如果是Model类属性和列名一样,则column属性可以省略
-->
<property name="name" column="name"></property><!-- 指定其他属性 -->
<property name="age" column="age"></property>
</class>
</hibernate-mapping>
五、在src目录中添加配置文件hibernate.cfg.xml。
<?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:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">adai119</property>
<!--
JDBC connection pool (use the built-in) Hibernate自带的连接池,一般不用,注释掉!
-->
<!-- <property name="connection.pool_size">1</property> -->
<!-- SQL dialect(方言)用于指定何种数据库,可以在Hibernate的文档中查到 -->
<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 二级缓存,优化Hibernate时再说!-->
<property name="cache.provider_class">
org.hibernate.cache.NoCacheProvider
</property>
<!-- Echo all executed SQL to stdout 是否显示生成的SQL生成语句!开发时,一定要显示,方便调试! -->
<property name="show_sql">true</property>
<!--
Drop and re-create the database schema on startup hbm是Hibernate
Maping ddl是数据定义语句 这句话的意思是:是否要Hibernate指定映射成数据定义语句。
-->
<!-- <property name="hbm2ddl.auto">update</property> -->
<property name="myeclipse.connection.profile">MySQL</property>
<mapping resource="com/liberD/hibernate/model/Student.hbm.xml" />
</session-factory>
</hibernate-configuration>
六、写测试类测试:
package com.liberD.hibernate.model;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;
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();// 默认读取的是sre下面的hibernate.cfg.xml
Session session = sf.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
}
}
七、输出结果:
Hibernate: insert into student (name, age, id) values (?, ?, ?)
总结反思:
其中,出现了两个小问题,这里也说明一下,
1、请在<mapping resource="ModelClassName.hbm.xml" />标签中填写上诉类的映射。否则会出错。具体见实例。
2、注意密码等等基本配置问题!
调试了这两个小问题,让我花了半天时间!!希望以后注意!
更多内容,请见我的博客:“地瓜哥”,http://www.diguage.com/
分享到:
相关推荐
Hibernate教程01_Hibernate的HelloWorld及基本配置 http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码
第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/R Mapping 11 一、 定义: 11 二、 Hibernate的创始人: 11 三、 Hibernate做什么: 12 四、 Hibernate存在的原因: ...
hibernate的helloworld版。下载下来可以直接运行。
Hibernate 4——Hello World
和电驴上马士兵Hibernate视频完全对应的文档,而非精简的笔记
一个简单的hibernate helloworld 下载下来就能用
1 HelloWorld 2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping 3 常见的0/R框架(了解) 4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ...
用Spring MVC+hibernate 写的一个HelloWorld小实例,加入了一个简单验证。
)马士兵java框架hibernate学习笔记
马士兵hibernate文档.doc
Hibernate 简单应用 第一课 免费下载 Hibernate 简单应用 第一课 免费下载 Hibernate 简单应用 第一课 免费下载 Hibernate 简单应用 第一课 免费下载 Hibernate 简单应用 第一课 免费下载 Hibernate 简单应用 第一课...
马士兵hibernate学习笔记.docx
hibernate-helloworld-native
马士兵hibernate学习笔记,方便学习hibernate
apache-log4j-1.2.15.zip classes12.jar hibernate-annotations-3.4.0.GA.zip hibernate-distribution-3.3.2.GA-dist.zip junit-4.10.jar mysql-connector-java-5.1.17-bin.jar slf4j-1.5.8.zip
今天看马士兵老师说的视屏时,特地去网上找的jar包,花了些功夫。还有一个是mysql的驱动包,这个要看你用的是什么版本的,跟我的不一定一样,我就没上传。
整理好的全部的hibernate 需要的Jar包,免去一个一个的去找
Hibernate01-简介和HelloWorld 例子代码,实现了简单新增,测试类需要引进junit4
这是hibernate 的超级简单的例子,只有一个持久化对象和一个辅助类,还有一个测试类,对于初学者很有参考价值