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?,单步 ...
随机推荐
- redis单机及其集群的搭建
http://www.cnblogs.com/mouseIT/p/5288204.html
- 使用ExpandableListView实现一个时光轴
在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...
- base查找方法的实现JAVA
import java.util.List; import java.util.ArrayList; import java.util.Scanner; /*在一个有序数组中查找一个数的过程,模拟二分 ...
- 如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现
转载请注明 ☞ http://blog.csdn.net/leverage_1229 上周为360全景项目引入了图片缓存模块.因为是在Android4.0平台以上运作,出于惯性,都会在设计之前查阅相关 ...
- OpenJDK1.8 安装
1. 安装JDK yum install -y java-1.8.0-openjdk-devel 2. 设置环境变量 /etc/profile文件增加 export JAVA_HOME=/usr/li ...
- Java项目依赖的配置过程
我们经常需要把大项目分解成多个小项目,然后使用依赖方式,将其他必须的依赖项目引用到项目中.最常用的方式是希望被依赖的项目能够自动被打包成jar文件,自动部署到依赖的项目中.同时被依赖项目修改后,能够同 ...
- uboot源码解析
实例:1.3.4版本at91sam系列 GPIO部分: 一.初始化: include\asm-arm\arch-at91sam9\gpio.h 1.同一引脚的复用设置 2.输入输出初始化寄存器 3.得 ...
- 创建本地RPM源之更新系统旧版软件mysql
事情起因 系统版本为Centos6.6 ,因为之前同事没有采用最小化选择性安装,所以系统安装好后自带有mysql5.1的三个安装包: [root@test ~]# rpm -qa | grep mys ...
- 【MINA】字节序知识
字节序,分为高位在前和低位在前,说白了就是先从低操作还是从高位操作 java和网络的字节序是一致的,都是高位在前,这意味着java端序列化和反序列化时不用关心字节序的问题, 那问题是,那讨论字节序有什 ...
- WebUploader——一个页面多个实例上传图片
WebUploader官方例子看的不是很清楚,自己也是费了点劲自己写了一下. 需求:一个单页需要多个实例来上传,一次可上传多张 条件:后台接收C# 首先:引入webuploader webup ...