当前位置: 首页 > news >正文

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();
			}
		}
	}
}

  

转载于:https://www.cnblogs.com/PoeticalJustice/p/7816305.html

相关文章:

  • 指定的SID在本机上已经存在。请指定一个不同的SID
  • AIO on AIX 6.1 (文档 ID 1328019.1)
  • 没有来的火灾...
  • 使用Eclipse+Axis2构建Web Service应用(客户端无需生成Stub方式)
  • 权限模块_分配权限_实现分配权限(登录与注销)的基本功能
  • 通过配置php来屏蔽PHP错误
  • [转载]写单元测试的好处
  • bootstrap-胶囊式标签页
  • [MYSQL]mysql常用操作命令
  • MongoDB被全球最大的分类信息网站Craigslist使用
  • 进程终结
  • Kubelet无法访问rancher-metadata问题分析
  • RIA Service 的 SOAP EndPoint
  • Servlet总结
  • js读取xml文档,并实现简单分页
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2019年如何成为全栈工程师?
  • ES6 学习笔记(一)let,const和解构赋值
  • Java读取Properties文件的六种方法
  • js数组之filter
  • Rancher-k8s加速安装文档
  • Theano - 导数
  • 电商搜索引擎的架构设计和性能优化
  • 关于extract.autodesk.io的一些说明
  • 关于List、List?、ListObject的区别
  • 计算机常识 - 收藏集 - 掘金
  • 京东美团研发面经
  • 网页视频流m3u8/ts视频下载
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • # Java NIO(一)FileChannel
  • #、%和$符号在OGNL表达式中经常出现
  • #includecmath
  • ${ }的特别功能
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)springcloud实战之config配置中心
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原)本想说脏话,奈何已放下
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 反射的使用
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET中统一的存储过程调用方法(收藏)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @property python知乎_Python3基础之:property
  • []sim300 GPRS数据收发程序
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [Angular] 笔记 9:list/detail 页面以及@Output