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文档呢?一个简单的方法就是使用 ...
随机推荐
- 图片路径中含有中文在jsp下不能正常显示的问题
图片路径中含有中文在jsp下不能正常显示的问题~ 这里其实涉及到get请求编码和url编码的问题. jsp页面: 当路径中存在中文的时候,最简单的解决办法是改变tomcat的编码: 在conf/ser ...
- flask-日料网站搭建-ajax传值+返回json字符串
引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现ajax操作,返回json. 本节知识:jquery,json,ajax pyth ...
- Spring MVC开启注解
1.在spring的配置文件中配置:<context:annotation-config />该项配置只能应用于已经注册的bean,比较难用,不深究. 2.在spring的配置文件中使用c ...
- 造excel表格横、列数据每一格自动累加填充效果
1.需求 excel每个横格子和竖格子number数据不一致的情况,保持如下金额字段每次自动累加 2.步骤: 1)设置excel格子为number格式(可以不要小数) 2)选中需要增序的单元格,选择e ...
- SVG 学习<一>基础图形及线段
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包
一.安装Fiddler 百度搜索:Fiddler抓包工具,然后安装即可. 然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息. 但是:默认情况下,Fiddler ...
- JavaScript Object 对象
Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它.因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScrip ...
- uva-10391-枚举
题意:对于输入的字符串,判断是否存在一个单词a=b+c 俩种方法,枚举每一个单词进行拼接,复杂度是n*n 枚举每一个单词,对单词进行substr,判断substr出来的是不在map里面 #includ ...
- java容器思维导图
转载自:https://blog.csdn.net/zbdxcyg/article/details/72330833
- apidoc 生成Restful web Api文档
在服务器项目开发过程中,总会牵扯到接口文档的设计与编写,之前使用的都是office写一个文档,不够直观.下面介绍一种工具生成Apidoc.,该工具是Nodejs的模块,请务必在使用前安装好nodejs ...