Hibernate的简单示例
首先我们新建一个项目,Java项目或者是Javaweb项目都可以,然后把hibernate需要的jar导入,我用的jar包如下:

然后新建一个实体类Teacher.java并添加get和set方法:
public class Teacher {
private String username;
private String password;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在Hibernate中一个实体类对应一个.hbm.xml文件,因此我们新建一个Teacher.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.hibernate.domain"> <class name="Teacher" table="Teacher">
<id name="username" type="java.lang.String" column="username">
<generator class="assigned"/>
</id>
<property name="password" type="java.lang.String" column="password" length="50"/>
<property name="age" type="int" column="age" length="10"/>
</class> </hibernate-mapping>
其中第9-11行代表的是主键的配置,name是指实体类中的字段,而column则是指数据库中相对应的字段。<genetator>中的class="assigned"代表主键非自动增长。下面的<property>则是配置的非主键。此文件和实体类在同一个包中。
之后我们需要在src目录下新建一个hibernate.cfg.xml文件,并将实体类对应的Teacher.hbm.xml文件导入,代码如下:
<!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>
<!-- 配置数据库信息 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="hibernate.connection.password"></property> <!-- 导入映射文件-->
<mapping resource="com/hibernate/domain/Teacher.hbm.xml"/>
</session-factory>
</hibernate-configuration>
第7-12行为配置数据库的基本信息,当然大家用的时候需要改一下11、12行,改成自己数据库对应的用户名和密码。
接下来我们写一个查询的方法和插入的方法TeacherDao.java:
public class TeacherDao {
//读取配置文件
Configuration congif = new Configuration().configure();
//创建sessionFactory
SessionFactory sf = congif.buildSessionFactory();
//创建session
Session session = null;
//创建事务(Hibernate必须用事务)
Transaction tx = null;
//插入一条数据
public void insert(Teacher teacher) {
try {
//打开session
session = sf.openSession();
//开启事务
tx = session.beginTransaction();
//进行持久化操作(添加,删除,更新)
session.save(teacher);
//提交事务
tx.commit();
} catch (Exception e) {
//事务回滚
tx.rollback();
} finally {
if (session != null)
session.close();
}
}
//查询数据
public List<Teacher> find(String hql) {
List<Teacher> teacher=new ArrayList<Teacher>();
try {
session = sf.openSession();
tx = session.beginTransaction();
//使用hql语句进行查询
Query query=session.createQuery(hql);
//返回list
teacher=query.list();
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
if (session != null)
session.close();
}
return teacher;
}
}
当然如果我们的src目录下的hibernate.cfg.xml名称不为这个,则在第3行读取配置文件的时候需要加上配置文件的路径。我们来看一下文件的目录结构:
我们在Test.java类中进行测试,代码如下:
public class Test {
public static void main(String[] args) {
/**
* 利用Hibernate的save方法进行持久化操作
*/
Teacher t=new Teacher();
t.setUsername("username4");
t.setPassword("root4");
t.setAge(20);
TeacherDao dao=new TeacherDao();
dao.insert(t);
/**
* 使用hql语句进行查询
* @return:将返回结果的username在控制台输出
*/
String hql="from Teacher";
List<Teacher> teacher=dao.find(hql);
for (int i = 0; i < teacher.size(); i++) {
System.out.println(teacher.get(i).getUsername());
}
}
}
当然不要忘记数据库中的表,我们可以根据Teacher.java中的字段建立,完成之后我们就可以在Test.java中运行一下看看结果了。
Hibernate的简单示例的更多相关文章
- Hibernate框架简单应用
Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...
- Mybatis的简单示例
首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示. 新建完表之后我们还需要建立相对应的实体类User ...
- Hibernate Validation使用示例及讲解
Hibernate Validation使用示例及讲解 时间 -- :: ITeye-博客 原文 http://wdmcygah.iteye.com/blog/2174680 主题 Java 在项目开 ...
- Struts2+Hibernate+Spring 整合示例
转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...
- Linux下的C Socket编程 -- server端的简单示例
Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...
- C# 构建XML(简单示例)
C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...
- 根据juery CSS点击一个标签弹出一个遮罩层的简单示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
随机推荐
- Hibernate逆向工程
MySQL Administrator 创建表 MyEclipse Database Explorer视图: 1. New 2 .Driver template: MySQL Connector ...
- 软件工程个人项目--Word frequency program
(一)工程设计时间预计 1.代码编写:2小时 (1)文件夹的遍历以及筛选: (2)文件夹的读取,以及对读取字符的操作: (3)所得结果排序,以及文件输出. 2.程序调试:1小时 (1)编写数据. (2 ...
- red5下nginx安装配置
http://zfl110.iteye.com/blog/1155149 原址:http://lqw.iteye.com/blog/652763 安装Nginx 1.首先安装pcre-8.02.tar ...
- poj 2349 Arctic Network
http://poj.org/problem?id=2349 Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submis ...
- Maven仓库Nexus的安装配置
1.下载nexus,最新版本是nexus-2.8.0-05 参考文章 下载nexus-latest-bundle.zip文件后,并解压到 D:\nexus下 配置nexus的环境变量:先配置NE ...
- ASP.NET MVC 前端(View)向后端(Controller)中传值
在MVC中,要把前端View中的值传递给后端Controller, 主要有两种方法 1. 利用Request.Form 或者 Request.QueryString public ActionResu ...
- JavaScript继承方式详解
原文链接 : http://segmentfault.com/a/1190000002440502 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继 ...
- dns解析对SEO产生的影响
DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和对应的IP地址,并具有将域名转换为IP地址功能的服务器 ...
- jq简单选项卡
function tabControl(obj,elm){ $(obj).hover(function(){ $(this).addClass('active').siblings().removeC ...
- Unity3D之Mecanim动画系统学习笔记(十):Mecanim动画的资源加载相关
资源加载是必备的知识点,这里就说说Mecanim动画的资源如何打包及加载. 注意,Unity4.x和Unity5.x的AssetBundle打包策略不一样,本笔记是基于Unity4.x的AssetBu ...