Hibernate学习笔记--环境搭建及运行
1、hibernate开发包下载 http://sourceforge.net/projects/hibernate/files/
如果不能访问请用代理http://dongtaiwang.com/loc/phome.php
2、添加jar包 将hibernate-release-4.3.7.Final\lib\required目录下的jar导入
3、在src目录下创建Student.java(按Javabean规范来,这些属性跟数据库中的字段对应起来)
内容如下:
package cn.sky.bookshop.bean;
public class Student {
private int id;
private String uname;
private String upass;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
}
@Override
public String toString() {
return "Student [id=" + id + ", uname=" + uname + ", upass=" + upass
+ "]";
}
}
4、建立一个对象关系映射文件Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.sky.bookshop.bean">
<class name="Student" table="student">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="uname" column="uname"></property>
<property name="upass" column="upass"></property>
</class>
</hibernate-mapping>
5、建立一个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-configuration>
<session-factory>
<!-- 数据库连接设置 -->
<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">215890</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- 是否显示执行的SQL语句 -->
<property name="show_sql">true</property>
<!-- 对象关系映射文件 -->
<mapping resource="cn/sky/bookshop/bean/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
5、建立一个HibernateUtil.java类,主要是获取session时使用
package cn.sky.bookshop.util; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration; public final class HibernateUtil {
private static SessionFactory factory;
private static Configuration conf;
static {
conf = new Configuration().configure();
factory = conf.buildSessionFactory();
} public static Session getSession() {
return factory.openSession();
} public static void closeSession(Session session) {
if (session != null && session.isOpen()) {
session.close();
}
}
}
注意:这里色SessionFactory对象只有一个,这是按饿汉式单例设计的。
6、然后可以设计DAO了,下面是我的DAO测试类
package cn.sky.bookshop.test; import java.util.List; import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions; import cn.sky.bookshop.bean.Student;
import cn.sky.bookshop.util.HibernateUtil; public class TestStudent { public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu = new Student();
stu.setUname("李四2");
stu.setUpass("123456");
// addStudent(stu); //添加数据
// updateStudent(stu, 1); //修改数据
// Student stu2 = selectStudentById(1); 查询数据
// System.out.println(stu2.toString());
// deleteStudentById(1); List list = selectStudentIf();
for (Object tem : list) {
Student stu3 = (Student)tem;
System.out.println(stu3.toString());
}
} //添加学生记录
public static void addStudent(Student stu){
Session session1 = HibernateUtil.getSession();
session1.beginTransaction();//开启事物(即创建了一个事物对象
session1.save(stu); //保存stu对象
session1.getTransaction().commit(); //提交事务
HibernateUtil.closeSession(session1);
}
//更新学生记录
public static void updateStudent(Student stu,int id){
Session session1 = HibernateUtil.getSession();
Transaction tc = session1.beginTransaction(); //创建事物对象
stu.setId(id);
session1.update(stu); //更新对象
tc.commit(); //提交事务
HibernateUtil.closeSession(session1);
}
//查询学生记录
public static Student selectStudentById(int id){
Session session1 = HibernateUtil.getSession();
Transaction tc = session1.beginTransaction(); //创建事物对象
Query query = session1.createQuery("from Student s where s.id=?");
query.setInteger(0, id); //这里下标从0开始替换?
Student stu = (Student)query.uniqueResult();
tc.commit();
HibernateUtil.closeSession(session1);
return stu;
}
//删除学生记录
public static void deleteStudentById(int id){
Session session1 = HibernateUtil.getSession();
Transaction tc = session1.beginTransaction(); //创建事物对象
Student stu = new Student();
stu.setId(id);
session1.delete(stu);
tc.commit();
HibernateUtil.closeSession(session1);
}
//条件查询
public static List<Student> selectStudentIf(){
Session s1 = HibernateUtil.getSession();
Transaction tc = s1.beginTransaction();
Criteria criteria = s1.createCriteria(Student.class); //创建条件查询对象
criteria.add(Restrictions.gt("id",1)); //添加查询条件
criteria.add(Restrictions.lt("id",5));
criteria.add(Restrictions.eq("id",2));
List<Student> list = criteria.list();
tc.commit();
s1.close();
return list;
} }
Hibernate学习笔记--环境搭建及运行的更多相关文章
- 0.react学习笔记-环境搭建与脚手架
0.环境搭建 笔者使用的是deepin/mac两种系统,因为两个电脑经常切换用.环境搭建没什么区别. 0.1 node安装 按照node官网叙述安装 # Using Debian, as root c ...
- MongoDB学习笔记~环境搭建
回到目录 Redis学习笔记已经告一段落,Redis仓储也已经实现了,对于key/value结构的redis我更愿意使用它来实现数据集的缓存机制,而对于结构灵活,查询效率高的时候使用redis就有点不 ...
- Docker学习笔记之搭建Docker运行环境
0x00 概述 既然 Docker 是一款实用软件,我们就不得不先从它的安装说起,只有让 Docker 运行在我们的计算机上,才能更方便我们对 Docker 相关知识和使用方式的学习.得益于与商业性的 ...
- VS2013中Python学习笔记[环境搭建]
前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色 ...
- Spring学习笔记--环境搭建和初步理解IOC
Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hiberna ...
- hadoop学习笔记——环境搭建
基础环境准备: 系统:(VirtualBox) ubuntu-12.04.2-desktop-i386.iso hadoop版本:hadoop-0.20.203.0rc1.tar.gz jdk版本:j ...
- DVWA学习笔记-----环境搭建
DVWA是一款渗透测试的演练系统,在圈子里是很出名的.如果你需要入门,那么就选它了. 我们通常将演练系统称为靶机,下面请跟着我一起搭建DVWA测试环境. 安装PHP集成环境 我这里用的是phpstu ...
- ESP32 学习笔记 - 环境搭建
打开终端 输入命令 sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-seria ...
- Hadoop学习笔记(10) ——搭建源码学习环境
Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...
随机推荐
- 闲话shuffle(洗牌)算法
工作中经常会用到洗牌算法,看到这篇文章不错,原文摘自:http://www.atatech.org/article/detail/11821/928 作者:子仲 场景 洗牌算法的应用场景其实很多 ...
- Orcle11g用户密码恢复
1.当安装Orcle11g后,很久不用,忘记了用户名和密码.可以通过以下方法重置: 如上图及重置用户sys,system密码为123
- I2C Verilog的实现(二)
1. 起始结束信号的判断 //--------------------------------------------- //start,stop condition judgement //---- ...
- js calendar橙色日期选择器代码
原文出处 http://files.cnblogs.com/files/quixon/date_js.rar
- Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536
关于方法数超限,Google官方给出的方案是这样的:https://developer.android.com/intl/zh-cn/tools/building/multidex.html 我也写过 ...
- SecurityException:Not allowed to start service Intent ,without permission not exported from
本来是学长以前的项目,我正在重做一遍.结果突然出现了异常,我很是不解啊,怎么莫名其妙的就出现异常了呢?我昨天用还是好好的,根本就没动过源代码.于是在网上开始了一遍又一遍的查询,有的说要加权限.有的说这 ...
- 一、Maven环境搭建(windows 环境)
所需工具 : JDK 1.7 java 环境 Maven 3.3.9 下载最新版本 Windows 7 注 Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3. ...
- c#保存textbox中的字符串到txt文件中
/********************** 保存接收按钮 *****************************/ private void SavetxData_Click(object s ...
- 10.26_地图应用, OSC_doc文档集合,node-webkit
(1)地图:关于电子地图的加载.展示方式,知乎上有篇文章写的很好:http://www.zhihu.com/question/21530085对于地图的导航距离计算呢?原理是什么? (2)node-w ...
- HBuilder手机Iphone运行提示“未受信用的企业级开发者”
HBuilder手机Iphone运行提示“未受信用的企业级开发者” 解决方法:设置-----通用------设备管理-----点击Digtial Heaven....---信任"Digtia ...