实体类关联数据库字段,操作实体类,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(框架)的更多相关文章

  1. ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...

    (一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. ...

  2. 1.Hibernate框架核心组件 (转自冯岩)

    Hibernate框架核心组件 在Hibernate框架简述中,演示了一个简单的Hibernate应用,但并没有深入说明其中程序,在这篇中将比较详细的介绍一下Hibernate的核心组件.首先最关键一 ...

  3. Struts2+Hibernate框架探险

    写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...

  4. hibernate框架的简单入门

    1.什么是框架 框架是一个半成品,框架帮我们实现了一部分的功能. 2.使用框架的最大好处 使用框架的最大好处就是,少写一部分代码但仍能实现我们所需要实现的功能. 3.什么是hiberbnate框架 ( ...

  5. Hibernate框架第三天

    **课程回顾:Hibernate第二天** 1. 持久化类和一级缓存 * 持久化类:JavaBean + 映射的配置文件 * 持久化对象的三种状态 * 瞬时态 * 持久态:有自动更新数据的能力 * 托 ...

  6. Hibernate框架第二天

    ### Hibernate的持久化类 ### ---------- **什么是持久化类** 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为 ...

  7. (01)hibernate框架环境搭建及测试

    ---恢复内容开始--- 1.创建javaweb项目 2.导包 hibernate包 hibernate\lib\required\*.jar 数据库驱动包 mysql-connector-java- ...

  8. Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)

    写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...

  9. Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)

    引导目录: Hibernate 系列教程 目录 本篇导航: 为什么学习框架技术 框架的概念 主流框架的介绍 1.为什么学习框架技术 如何制作一份看上去具有专业水准的PPT文档呢?一个简单的方法就是使用 ...

随机推荐

  1. make install 时指定安装路径

    The  make install target dir is representationed by var :  DESTDIR, if we set this var to the locati ...

  2. mysql视图 触发器 事物 函数 存储过程

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  3. Centos7基于容器安装运行Docker私有仓库及添加认证

    一.前言 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理 ...

  4. 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

    出错原因:用户没有变更根目录的权限. ftp用户默认的根目录是/home/ftp,如果要切换登陆目录,需要给予权限 解决方法: 第一步, 打开/etc/vsftpd/vsftpd.conf,做如下配置 ...

  5. gentoo intel 安装桌面

    首先增加 vim ~/.xinitrc [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources # dbus before fcitx ...

  6. gentoo openrc 开机打印信息

    gentoo openrc 开机的时候,最开始 一些硬件的信息, 后面是一些内核和驱动的信息. 硬件的信息是默认保存到 /var/log/dmesg 中, 可以使用 dmesg | less 来查看硬 ...

  7. iar stm32 启动代码片段分析

    今天查看了 iar 上面的启动文件,好奇堆栈指针到底是什么时候赋值的,所以就仔细的阅读了代码和相关手册,找到了答案. 首先,芯片启动后,会从ROM的首地址处进行执行,那么我们从 linker 里面找找 ...

  8. Docker的概述

    什么是Docker 1.容器技术 在计算机的世界中,容器拥有一段漫长且传奇的历史.容器与管理程序虚拟化(hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一 ...

  9. 1950261 - SAP HANA Database Backup Policy Recommendations and Regular Backup Script

    =====Symptom For SAP Business One, version for SAP HANA users, SAP HANA provides a range of database ...

  10. 《算法》第五章部分程序 part 1

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排) ● 字母表类 package package01; import edu.princeton.cs.algs4. ...