JAVAWEB 一一 Hibernate(框架)
实体类关联数据库字段,操作实体类,HQL语句对数据结构CRUD)
引入jar包
配置文件
hibernate.cfg.xml
User.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
<class name="com.book.entity.User" table="USER_NEW">
<id name="userid" type="java.lang.Integer">
<column name="USERID" />
<generator class="sequence">
<param name="sequence">SEQ_ID</param>
</generator>
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME"/>
</property>
<property name="userpassword" type="java.lang.String">
<column name="USERPASSWORD" length="50" not-null="true" />
</property>
<property name="role" type="java.lang.Integer">
<column name="ROLE"/>
</property>
<property name="state" type="java.lang.Integer">
<column name="STATE"/>
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL"/>
</property>
<property name="createdate" type="java.util.Date">
<column name="CREATEDATE"/>
</property>
</class>
</hibernate-mapping>
增
package com.book.test; import java.util.Date; import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import com.book.entity.User; public class AddTest {
public static void main(String[] args) {
Configuration conf = null;
SessionFactory sessionFactory =null;
Session session = null;
Transaction tx = null;
try {
//解析配置文件
conf = new Configuration().configure();
//创建解析工厂
sessionFactory= conf.buildSessionFactory();
//打开session
session = sessionFactory.openSession();
//开启事务
tx = session.beginTransaction();
//创建对象
User user = new User("Tom","adsf123",0,0,"sdsad@qq.com",new Date());
//增 添加数据
session.save(user);
//提交
tx.commit();
} catch (HibernateException e) {
//回滚
tx.rollback();
e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
}
删
package com.book.test; import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import com.book.entity.User; public class DelTest {
public static void main(String[] args) {
Configuration conf = null;
SessionFactory sessionFactory =null;
Session session = null;
Transaction tx = null;
try {
//解析配置文件
conf = new Configuration().configure();
//创建解析工厂
sessionFactory= conf.buildSessionFactory();
//打开session
session = sessionFactory.openSession();
//开启事务
tx = session.beginTransaction();
//先查 后删除 load和get一样
User user =(User) session.load(User.class, 45);
session.delete(user); //提交
tx.commit();
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
}
改
package com.book.test; import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import com.book.entity.User; public class UpdateTest {
public static void main(String[] args) {
Configuration conf = null;
SessionFactory sessionFactory =null;
Session session = null;
Transaction tx = null;
try {
//解析配置文件
conf = new Configuration().configure();
//创建解析工厂
sessionFactory= conf.buildSessionFactory();
//打开session
session = sessionFactory.openSession();
//开启事务
tx = session.beginTransaction();
//先查 后改
User user =(User) session.load(User.class, 45);
user.setEmail("504177380@qq.com"); session.update(user);
//提交
tx.commit();
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
}
查
package com.book.test; import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.book.entity.User; public class QueryTest {
public static void main(String[] args) { Configuration conf = null;
SessionFactory sessionFactory =null;
Session session = null; try {
//解析配置文件
conf = new Configuration().configure();
//创建解析工厂
sessionFactory= conf.buildSessionFactory();
//打开session
session = sessionFactory.openSession(); //查 查不涉及 事务
User user =(User) session.load(User.class, 45);
System.out.println(user.getUserpassword()+" "+user.getUsername()); } catch (HibernateException e) { e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
} }
测试HQL语句
package com.book.test; import java.util.Date;
import java.util.List; import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.book.entity.User; public class TestHql {
public static void main(String[] args) {
Configuration conf = null;
SessionFactory sessionFactory =null;
Session session = null; try {
//解析配置文件
conf = new Configuration().configure();
//创建解析工厂
sessionFactory= conf.buildSessionFactory();
//打开session
session = sessionFactory.openSession(); Query query = session.createQuery("from User where userid =?");
query.setInteger(0, 45);
//分页查询
int pageIndex=2;
int pageSize=10;
query.setFirstResult((pageIndex-1)*pageSize);
query.setMaxResults(pageSize);
List<User>list = query.list(); //单个对象
User user1 = (User)query.uniqueResult();
//多个对象的结果集
List<User> list1 =query.list(); for(int i=0;i<list.size();i++){
int userid = list.get(i).getUserid();
System.out.println(userid);
} //创建对象
User user = new User("Tom","adsf123",0,0,"sdsad@qq.com",new Date());
//增 添加数据
session.save(user);
//提交 } catch (HibernateException e) { e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
}
JAVAWEB 一一 Hibernate(框架)的更多相关文章
- ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...
(一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. ...
- 1.Hibernate框架核心组件 (转自冯岩)
Hibernate框架核心组件 在Hibernate框架简述中,演示了一个简单的Hibernate应用,但并没有深入说明其中程序,在这篇中将比较详细的介绍一下Hibernate的核心组件.首先最关键一 ...
- Struts2+Hibernate框架探险
写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...
- hibernate框架的简单入门
1.什么是框架 框架是一个半成品,框架帮我们实现了一部分的功能. 2.使用框架的最大好处 使用框架的最大好处就是,少写一部分代码但仍能实现我们所需要实现的功能. 3.什么是hiberbnate框架 ( ...
- Hibernate框架第三天
**课程回顾:Hibernate第二天** 1. 持久化类和一级缓存 * 持久化类:JavaBean + 映射的配置文件 * 持久化对象的三种状态 * 瞬时态 * 持久态:有自动更新数据的能力 * 托 ...
- Hibernate框架第二天
### Hibernate的持久化类 ### ---------- **什么是持久化类** 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为 ...
- (01)hibernate框架环境搭建及测试
---恢复内容开始--- 1.创建javaweb项目 2.导包 hibernate包 hibernate\lib\required\*.jar 数据库驱动包 mysql-connector-java- ...
- Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
- Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)
引导目录: Hibernate 系列教程 目录 本篇导航: 为什么学习框架技术 框架的概念 主流框架的介绍 1.为什么学习框架技术 如何制作一份看上去具有专业水准的PPT文档呢?一个简单的方法就是使用 ...
随机推荐
- C# 自己动手实现Spy++(一)
因为项目要用到获取其他程序的标题,就想到了用Spy++,但是它是一个工具,并没有C#的源代码,所以就想探索下他的原理,网上搜索了下spy++的源代码,找到了一篇:http://blog.csdn.ne ...
- WordPress整站轻松开启HTTPS
近两年来HTTPS取代HTTP已经成为大势所趋.早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全.现在,Chrome浏览器已经开始执行这一标准了.从 Chr ...
- 物体检测之FPN及Mask R-CNN
对比目前科研届普遍喜欢把问题搞复杂,通过复杂的算法尽量把审稿人搞蒙从而提高论文的接受率的思想,无论是著名的残差网络还是这篇Mask R-CNN,大神的论文尽量遵循著名的奥卡姆剃刀原理:即在所有能解决问 ...
- [SDOI2013]泉(容斥)
/* 容斥加上哈希 首先我们可以2 ^ 6枚举相同情况, 然后对于这些确定的位置哈希一下统计方案数 这样我们就统计出了这些不同方案的情况, 然后容斥一下就好了 */ #include<cstdi ...
- Python笔记:用for循环删除列表中的元素
for运行过程中会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个元素,然后获取它,接着删除第0个元素,这时候,原来是第1个的元素会变成第0个,当指针向后移动一次,指向了现在第1个元素 ...
- sql语句基础(一)
数据库基本操作 创建数据库 CREATE DATABASE database-nam 2. 删除数据库 drop database dbname 3. 备份sql server --- 创建 备 ...
- python2和python3的内存使用情况
python2 对回收后的整数复用内存不作处理 python3则改进了改设计,极大的减少了内存占用 例如 a = range(1000000000000) del a 此时: python2 对于a占 ...
- springboot工程的添加方式
1.将spring boot做为父工程 <parent> <groupId>org.springframework.boot</groupId> <artif ...
- putty的小兄弟psftp的使用
1.双击运行psftp.exe 双击直接运行psftp.exe程序 2.open目标地址 运行psftp后,使用open指令连接目标机器,如: psftp>open 127.0.0.1 3.输入 ...
- ELK测试安装
https://blog.csdn.net/guyan0319/article/details/78749639 https://www.cnblogs.com/frankdeng/p/9139035 ...