hibernate实现增删改查
1、需要先创建学生实体:
package pers.zhb.domain;
public class Student {
private int studentno;
private String sname;
private String sex;
private String birthday;
private String classno;
private float point;
private String phone;
private String email; @Override
public String toString() {
return "Student{" +
"studentno='" + studentno + '\'' +
", sname='" + sname + '\'' +
", sex='" + sex + '\'' +
", birthday='" + birthday + '\'' +
", classno='" + classno + '\'' +
", point=" + point +
", phone='" + phone + '\'' +
", email='" + email + '\'' +
'}';
} public int getStudentno() {
return studentno;
} public void setStudentno(int studentno) {
this.studentno = studentno;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getBirthday() {
return birthday;
} public void setBirthday(String birthday) {
this.birthday = birthday;
} public String getClassno() {
return classno;
} public void setClassno(String classno) {
this.classno = classno;
} public float getPoint() {
return point;
} public void setPoint(float point) {
this.point = point;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
}
}
2、学生实体与学生表的映射文件(Student.hbm.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="pers.zhb.domain">
<class name="Student" table="student">
<id name="studentno" column="studentno">
<generator class="native"></generator>
</id>
<property name="birthday" column="birthday"></property>
<property name="classno" column="classno"></property>
<property name="email" column="email"></property>
<property name="phone" column="phone"></property>
<property name="sex" column="sex"></property>
<property name="sname" column="sname"></property>
<property name="point" column="point"></property>
</class>
</hibernate-mapping>
3、主配置文件(hibernate.cfg.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!--配置数据库信息-必须的-->
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/stu_mangement</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!--配置hibernate信息-可选的-->
<property name="hibernate.show_sql">true</property><!--输出底层sql语句-->
<property name="hibernate.format_sql">true</property><!--格式化输出sql语句-->
<property name="hibernate.hbm2ddl.auto">create</property><!--hibernate帮助创建表,如果已经有表更新表,
如果没有则创建新表-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--配置数据库的方言,让hibernate识别框架自己的特有语句-->
<!--把映射文件放到核心配置文件-->
<mapping resource="pers/zhb/domain/Student.hbm.xml"/><!--都在src目录下-->
</session-factory>
</hibernate-configuration>
4、添加学生信息:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import pers.zhb.domain.Student;
class HinernateTest{
public static void testAdd() {
//(1)加载hibernate核心配置文件
//src目录下的配置文件名称是固定的:hibernate.cfg.xml
Configuration configuration= new Configuration();
configuration.configure();
//(2)读取hibernate核心配置文件的内容,创建sessionFactory对象,根据映射关系创建相应的表
SessionFactory sessionFactory=configuration.buildSessionFactory();
//(3)利用sessionFactory对象创建session对象
//类似于创建连接
Session session=sessionFactory.openSession();
//(4)开启事务
Transaction transaction=session.beginTransaction();
//(5)具体操作
Student student=new Student();
student.setSname("zzzz");
student.setSex("男");
student.setBirthday("2019-11-11");
student.setClassno("");
student.setPoint();
student.setPhone("");
student.setEmail("20171514@qq.com");
session.save(student);
//(6)提交事务
transaction.commit();
//(7)关闭资源
session.close();
sessionFactory.close();
}
public static void main(String []args){
HinernateTest hinernateTest=new HinernateTest();
hinernateTest.testAdd();
}
}
获取学生对象,并对该对象设置值。
5、查询学生信息(根据主键查询):
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import pers.zhb.domain.Student;
public class HiberateSel {
public static void testSel() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Student student=session.get(Student.class,);
System.out.println(student);
transaction.commit();
session.close();
sessionFactory.close();
}
public static void main(String []args){
HiberateSel hinernateSel=new HiberateSel();
hinernateSel.testSel();
}
}
即直接获取学生对象。
6、修改学生信息:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import pers.zhb.domain.Student;
public class HibernateUpdate {
public static void testUpdate() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
//获得要修改的对象
Student student=session.get(Student.class,);
student.setEmail("201715@qq.com");
student.setClassno("");
student.setPhone("");
student.setBirthday("2019-11-11");
student.setSex("女");
student.setSname("tom");
student.setPoint(); transaction.commit();
session.close();
sessionFactory.close(); }
public static void main(String []args){
HibernateUpdate hibernateUpdate=new HibernateUpdate();
hibernateUpdate.testUpdate();
}
}
需要先通过主键获取要修改的学生对象,然后对相应的学生属性进行修改。
7、删除学生:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import pers.zhb.domain.Student;
public class HibernateDel{
public static void testDel() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
//获得要修改的对象
Student student=session.get(Student.class,);
session.delete(student);
transaction.commit();
session.close();
sessionFactory.close();
}
public static void main(String []args){
HibernateDel hibernateDel=new HibernateDel();
hibernateDel.testDel();
}
}
通过主键查找到学生对象,调用函数删除该学生。
hibernate实现增删改查的更多相关文章
- Hibernate全套增删改查+分页
1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...
- Hibernate的增删改查
一.搭建Hibernate开发环境,这里就不说了,直接说环境搭好后的事情. 二.项目的目录结构
- hibernate实现增删改查的各种方法
1>接口(主要是增删改查的接口)BaseDao.java /** * * @author fly.zhou */ public interface IBaseDao { //增加对应实体的一条记 ...
- EasyUI + Spring MVC + hibernate实现增删改查导入导出
(这是一个故事--) 前言 作为一个JAVA开发工程师,我觉得最基本是需要懂前端.后台以及数据库. 练习的内容很基础,包括:基本增删改查.模糊查询.分页查询.树菜单.上传下载.tab页 主管发我一个已 ...
- hibernate之增删改查demo
package dao; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import o ...
- Hibernate基础增删改查语法
1.创建好Hibernate项目,创建好实体类和测试类,如果不会创建Hibernate项目的同学,点此处:http://www.cnblogs.com/zhaojinyan/p/9336174.htm ...
- SpringMVC整合Hibernate实现增删改查之按条件查询
首先我贴出我项目的结构,只完成了条件查询的相关代码,增删改没有写. 1.新建一个动态Web工程,导入相应jar包,编写web.xml配置文件 <context-param> <par ...
- (四)Hibernate的增删改查操作(1)
Hiberntae的查找操作有多种: 1. 使用Criteria接口查询 Query_Criteria.java package action; import java.util.ArrayList ...
- hibernate学习笔记之四 Hibernate的增删改查
采用JUnit测试,继承TestCase import java.util.Date; import junit.framework.TestCase; import org.hibernate.Se ...
- Hibernate常用增删改查方法
/** * @param obj * @return * 添加数据 */ public Serializable saveObject(Object obj){ return this.getHibe ...
随机推荐
- spring整合RabbitMQ
今天就来康康spring怎么整合RabbitMQ 注意一点,在发送消息的时候对template进行配置mandatory=true保证监听有效 生产端还可以配置其他属性,比如发送重试,超时时间.次数. ...
- [cf 1194 D] 1-2-K Game
(当时让这道sb题卡住了,我比sb还sb) 题意: n个东西,两个人轮流取,每次可以取走1个,2个或k个,不能取的人输,求谁必胜. $0\leq n \leq 10^{9},3\leq k \leq ...
- JavaScript 的 深拷贝和浅拷贝
深拷贝和浅拷贝都是针对的引用类型, JS中的变量类型分为值类型(基本类型)和引用类型: 对值类型进行复制操作会对值进行一份拷贝,而对引用类型赋值,则会对地址进行拷贝,最终两个变量指向同一份数据 一.先 ...
- .net core 读取、修改配置文件appsettings.json
.net core 设置读取JSON配置文件 appsettings.json Startup.cs 中 public class Startup { public Startup(IHostingE ...
- DEDE5.5招聘模板
<channel:id>18</channel:id> <channel:nid>zhaopin</channel:nid> <channel:t ...
- 常用正则表达式和一些demo
一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ ...
- aria2 cmd set chmod, and others..
import 'package:flutter/material.dart'; import 'dart:io'; import 'dart:async'; import 'package:rxdar ...
- Java基础之枚举类型Enum的使用
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...
- MongoDB 设置参数
服务器配置文件分析 bin目录下的mongod.cfg是服务器的配置文件,文件中主要的配置参数: 1.数据库文件的存放位置 2.服务器日志文件的存放位置 3.默认的IP地址.端口号 设置密码 默认情况 ...
- PB连接数据库
SQLCA.DBMS = "ODBC" SQLCA..AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=fire ...