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文档呢?一个简单的方法就是使用 ...
随机推荐
- (转)Floyd算法
原文地址:http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html 参考资料:http://developer.51cto.co ...
- ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.
Sqoop导入mysql表中的数据到hive,出现如下错误: ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.Hi ...
- ElasticSearch索引
简介 索引是具有相同结构的文档集合.在Elasticsearch中索引是个非常重要的内容,对Elasticsearch的大部分操作都是基于索引来完成的.同时索引可以类比关系型数据库Mysql中的数据库 ...
- 用vlan实现同一网段的的各部门之间有的可以通信有的不可以通信
日前老师上课演示一个项目:实现公司同一网段的各个部门之间有的可以通信有的无法通信.我们用的是思科测试软件模拟操作,个人觉得很好用. 在刚开始做这个项目的时候我以为端口是对应的,如图,交换机 ...
- 微信小程序如何引用其他js文件
1.我们先建立一个common.js文件,在common.js编写我们的程序, function myfunc() { console.log("myfunc....");} mo ...
- python - requests从excel中获取测试用例数据
HttpRequests.py #-*- coding:utf-8 -*- import requests class HttpRequests(): def http_requests(self,u ...
- java中的Map
Java8增强的Map集合 Map接口中定义了如下常用的方法. void clear():删除该Map对象中的所有key-value对. boolean containsKey(Object key) ...
- qtftp 客户端
今天上午看了看FTP网络,但是当添加头文件时发现qt creater并不包括此头文件,于是找了一下资料发现:在QT5上将QFtp去掉了,建议使用QNetworkAccessManager,但是后者并没 ...
- angularjs探秘<五> 举足轻重的scope
scope在angular中的作用可谓举足轻重,不理解scope就不会angular: scope是应用在 HTML (view) 和 JavaScript (controller)之间的纽带. sc ...
- 【Selenium-WebDriver自学】Selenium-IDE用户扩展(七)
==================================================================================================== ...