Hibernate的入门(增删改查):
注意:本次的记录是在上一篇Hibernate入门的基础上应用的
1.目录
2.实体类修改
package com.itheima.domain; /*
* 客户的javaBean
* @author chenyanlong
*/
public class Customer {
private Long cust_id;
private String cust_name;
private Long cust_user_id;
private Long cust_create_id;
private String cust_source;
private String cust_industry;
private String cust_level;
private String cust_linkman;
private String cust_phone;
private String cust_mobile;
public Long getCust_id() {
return cust_id;
}
public void setCust_id(Long cust_id) {
this.cust_id = cust_id;
}
public String getCust_name() {
return cust_name;
}
public void setCust_name(String cust_name) {
this.cust_name = cust_name;
}
public Long getCust_user_id() {
return cust_user_id;
}
public void setCust_user_id(Long cust_user_id) {
this.cust_user_id = cust_user_id;
}
public Long getCust_create_id() {
return cust_create_id;
}
public void setCust_create_id(Long cust_create_id) {
this.cust_create_id = cust_create_id;
}
public String getCust_source() {
return cust_source;
}
public void setCust_source(String cust_source) {
this.cust_source = cust_source;
}
public String getCust_industry() {
return cust_industry;
}
public void setCust_industry(String cust_industry) {
this.cust_industry = cust_industry;
}
public String getCust_level() {
return cust_level;
}
public void setCust_level(String cust_level) {
this.cust_level = cust_level;
}
public String getCust_linkman() {
return cust_linkman;
}
public void setCust_linkman(String cust_linkman) {
this.cust_linkman = cust_linkman;
}
public String getCust_phone() {
return cust_phone;
}
public void setCust_phone(String cust_phone) {
this.cust_phone = cust_phone;
}
public String getCust_mobile() {
return cust_mobile;
}
public void setCust_mobile(String cust_mobile) {
this.cust_mobile = cust_mobile;
}
@Override
public String toString() {
return "Customer [cust_id=" + cust_id + ", cust_name=" + cust_name + ", cust_user_id=" + cust_user_id
+ ", cust_create_id=" + cust_create_id + ", cust_source=" + cust_source + ", cust_industry="
+ cust_industry + ", cust_level=" + cust_level + ", cust_linkman=" + cust_linkman + ", cust_phone="
+ cust_phone + ", cust_mobile=" + cust_mobile + "]";
} }
3.HibernateUtils.java
package com.itheima.utils; import javax.servlet.jsp.jstl.core.Config; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /*
* Hibernate框架的工具
* @author chenyanlong
*/
public class HibernateUtils { //Curl+shift+x
private static final Configuration CONFIG;
private static final SessionFactory FACTORY; //编写静态代码
static {
//加载配置文件
CONFIG =new Configuration().configure();
//构造工厂
FACTORY=CONFIG.buildSessionFactory();
} /*
* 从工厂获取Session对象
* @return
*/
public static Session getSession() {
return FACTORY.openSession(); }
}
4. 保存数据
/*
* 1 保存数据
*/
@Test
public void testSave(){
/*
* 1.先加载配置文件
* 2.创建SessionFactory对象,生成Session对象
* 3.创建Sesison对象
* 4.开启事务
* 5.编写保存代码
* 6.提交事务
* 7.释放资源
*/ //1.加载配置文件
Configuration config=new Configuration();
//默认加载src目录下hibernate.cfg.xml的配置文件
config.configure();
//2.创建SessionFactory对象
SessionFactory factory=config.buildSessionFactory();
//3.创建session对象
Session session=factory.openSession();
//4.开启事务
Transaction tr= session.beginTransaction(); //5.编写保存代码
Customer customer = new Customer();
customer.setCust_name("小李");
customer.setCust_source("小广告"); session.save(customer);
//6.提交事务
tr.commit(); //7.释放资源
session.close();
factory.close();
}
5.测试工具类
/*
* 2 测试工具类
*/
@Test
public void testSave2(){
//原来:加载配置文件,获取Factory对象,获取Session
Session session=HibernateUtils.getSession();
Transaction tr=session.beginTransaction();
Customer c=new Customer();
c.setCust_name("小陈");
session.save(c); //提交事务
tr.commit();
//释放资源
session.close(); }
6.测试get()方法
/*
* 3 测试get()方法,获取查询,通过主键查询一条记录
*/
@Test
public void testSave3(){
//原来:加载配置文件,获取Factory对象,获取Session
Session session=HibernateUtils.getSession();
Transaction tr=session.beginTransaction(); //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
Customer c=session.get(Customer.class, 95L);
System.out.println(c); //提交事务
tr.commit();
//释放资源
session.close();
}
7.删除方法
/*
* 4 测试删除的方法
* 注意:删除或者修改,先查询再删除或者修改
*/
@Test
public void testDel(){
//原来:加载配置文件,获取Factory对象,获取Session
Session session=HibernateUtils.getSession();
Transaction tr=session.beginTransaction(); //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
Customer c=session.get(Customer.class, 95L);
System.out.println(c); //删除客户
session.delete(c); //提交事务
tr.commit();
//释放资源
session.close();
}
8.测试修改
/*
*5 测试修改
*/
@Test
public void testUpdate(){
//原来:加载配置文件,获取Factory对象,获取Session
Session session=HibernateUtils.getSession();
Transaction tr=session.beginTransaction(); //测试查询的两个参数,arg0查询javaBean的class对象,arg1主键的值
Customer c=session.get(Customer.class, 94L);
System.out.println(c); //设置客户信息
c.setCust_name("小龙虾"); //修改或是更新
session.update(c); //session.saveOrUpdate(c); 添加或是修改
//提交事务
tr.commit();
//释放资源
session.close();
}
9.测试查询方法
/*
* 测试查询方法
*/
@Test
public void testSel() {
//加载配置文件
Session session =HibernateUtils.getSession();
Transaction tr=session.beginTransaction(); //创建查询的接口
Query query=session.createQuery("from Customer"); //查询所有的数据
List<Customer> list=query.list();
for(Customer customer:list) {
System.out.println(customer);
} //提交事务
tr.commit(); //释放资源
session.close(); }
Hibernate的入门(增删改查):的更多相关文章
- 肝 hibernate 配置and增删改查 and 测试
已经通宵三天撸代码了,现在的我已经养成晚上修仙写代码的节奏了.....最近 刚刚复习到了 hibernate 谈谈 这篇文章就谈谈我对这货的理解吧. 在看这篇文章之前希望你 知道sessionfact ...
- Hibernate下的增删改查
概述: 关系--对象映射的中间件,属于开源ORM框架,是我们业务逻辑层中的调用数据库的中间件 演变: jdbc---hibernater---mybatis hibernate和mybatis区别? ...
- hibernate搭建及其增删改查
一.jar包 最基础的hibernatejar包,以及数据库驱动的jar包 二.数据库 t_user表 id int 主键 自动增长 name varchar() 三.配置文件 <?xml ve ...
- hibernate的配置, 增删改查
路径:查找路径 实际上都是查找编译后的对应的路径,在bin文件夹中总 增删改必须开启事务才行 hibernate加载文件的两种方式 configure 1.引包 antlr-2.7.6.jar bac ...
- Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门
1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql 5.6 2.项目文件结构 文件代码: 2.1 .pom.xml <project x ...
- struts+hibernate 请求数据库增删改查(小项目实例)
StudentAction.java package com.action; import java.util.ArrayList; import java.util.List; import j ...
- 5.Hibernate实现全套增删改查和ajax异步分页
1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...
- JPA+Hibernate 3.3 ——增删改查
1. 查找对象 1) 用find()方法查找对象 public void getPerson(){ EntityManagerFactory factory = Persistence. ...
- Mongodb基本操作入门,增删改查和索引
主要进程 mongod.exe为启动数据库实例的进程. mongo是一个与mongod进程进行交互的JavaScript shell进程,它提供了一些交互的接口函数用户对数据库的管理. 基本命令 sh ...
随机推荐
- 1.docker 数据卷的备份和恢复(非大数据量)
在生产环境中使用 Docker,很多时候需要对数据进行持久化,或者进行容器间的数据共享. 容器中的管理数据主要有两种方式: 数据卷 (Data Volumes): 容器内数据直接映射到本地主机环境: ...
- Qt setStyleSheet
Qt中设置按钮或QWidget的外观是,可以使用QT Style Sheets来进行设置,非常方便.可以用setStyleSheet("font: bold; font-size:20px; ...
- Druid简单使用
一.添加maven依赖 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <depende ...
- POJ 3481 Double Queue
平衡树.. 熟悉些fhq-Treap,为啥我在poj读入优化不能用啊 #include <iostream> #include <cstdio> #include <ct ...
- Codeforces980 D. Perfect Groups
传送门:>Here< 题目大意:先抛出了一个问题——“已知一个序列,将此序列中的元素划分成几组(不需要连续)使得每一组中的任意两个数的乘积都是完全平方数.特殊的,一个数可以为一组.先要求最 ...
- Going Home POJ - 2195(费用流)
就是一个简单题 四个月前a的一道题,今天又看到了,再a一遍吧. 好吧 我想多了 用了bfs求最短路 其实不用的 因为没有障碍物 #include <iostream> #include ...
- 基于FPGA的16阶级联型iir带通滤波器实现
警告 此文章将耗费你成吨的流量,请wifi下阅读,造成的流量浪费本人不承担任何责任.初版源代码获取(请勿用作他用,仅供学习):https://gitee.com/kingstacker/iir.git ...
- Mac 部分软件介绍
1.Pickle可帮你轻松的安装 PHP 扩展,支持所有平台.基于 Composer(PHP的依赖管理器)开发.-----------扩展安装 2.composer parallel install ...
- P2521 [HAOI2011]防线修建
题目链接:P2521 [HAOI2011]防线修建 题意:给定点集 每次有两种操作: 1. 删除一个点 (除开(0, 0), (n, 0), 与指定首都(x, y)) 2. 询问上凸包长度 至于为什么 ...
- Elasticsearch 安全篇
为什么要开放外网访问Elasticsearch:1.一些插件监听使用,方便及时了解线上数据的情况,比如说head插件等2.为了HTTP直接访问,有的同学考虑到通过后台TCP查询,然后返回数据,还不如直 ...