初识hibernate框架之一:进行简单的增删改查操作

时间:2022-09-12 16:04:47

Hibernate的优势

l 优秀的Java 持久化层解决方案  (DAO)

l 主流的对象—关系映射工具产品

l 简化了JDBC 繁琐的编码

l 将数据库的连接信息都存放在配置文件

l 自己的ORM框架

l 一定要手动实现Hibernate(模拟Hibernate实现)

一:创建一个java project项目

如下图

初识hibernate框架之一:进行简单的增删改查操作

2:创建一个大配置文件

<?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> <!-- Database connection settings 数据库连接设置-->
<!-- 驱动类 -->
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property><!-- 数据库驱动语言 -->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!-- 数据库连接字符串 -->
<property name="connection.username">Y2162</property><!-- 用户名 -->
<property name="connection.password">1</property><!-- 密码 -->
<!-- SQL dialect (sql的方言)-->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- 通过oracle数据库的版本规定sql方言 -->
<!-- Echo all executed SQL to stdout 在控制台打印后台的sql语句-->
<property name="show_sql">true</property><!-- 可省,展示生成的sql语句 -->
<!-- 格式化显示sql -->
<property name="format_sql">true</property><!-- 可省,将展示出的sql语句格式化-->
<!-- Drop and re-create the database schema on startup 序列化-->
<property name="hbm2ddl.auto">update</property><!-- 数据库的建表语句首选create,之后选择update --> <mapping resource="Student.hbm.xml" /><!-- 关联小配置文件 --> </session-factory> </hibernate-configuration>

继而创建一个小配置文件

<?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="cn.happy.entity"><!-- 关联哪个包下的类 -->
<class name="Student" table="STUDENT"><!-- 符合一类对应一表 -->
<id name="sid" column="SID"><!-- 生成主键(唯一标识) -->
<!-- 主键生成策略:native: native:如果后台是Oracle 后台是MySQL,自动应用自增 -->
<generator class="increment" />
</id>
<property name="name" type="string" column="NAME" />
<property name="age" type="int" column="AGE"/>
</class>
</hibernate-mapping>

初识hibernate框架之一:进行简单的增删改查操作

编写程序的时候,以面向对象的方式处理数据

保存数据的时候,却以关系型数据库的方式存储

三:Test类中的测试数据

package cn.happy.Test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before; import cn.happy.entity.Student;
import cn.happy.until.Hibernate_until; public class Test { public static void main(String[] args) {
//addAll();
//delete();
find();
} public static void addAll()
{
Student stu=new Student();
stu.setSid(1);
stu.setAge(18);
stu.setName("我是狗"); //获取session对象
Session session = Hibernate_until.getSession();
//开启事务
Transaction tran = session.beginTransaction();
//hibernate保存
session.save(stu);
System.out.println("成功保存!");
tran.commit();
Hibernate_until.closeSession();
}
public static void delete()
{
//打开session
Session session = Hibernate_until.getSession();
//开始一个事务
Transaction tx=session.beginTransaction();
//获取部门的对象
Student stu=(Student)session.get(Student.class, new Integer(1));
//删除对象(持久化操作)
if(stu!=null)
{
session.delete(stu);
}
try {
//提交事务
tx.commit();
System.out.println("删除成功");
} catch (Exception e) {
//回滚事务
tx.rollback();
System.out.println("删除回滚");
}
Hibernate_until.closeSession();
}
public static void update()
{
Session session = Hibernate_until.getSession();
//开始一个事务
Transaction tx=session.beginTransaction();
//获取部门的对象
Student stu=(Student)session.get(Student.class, new Integer(1));
//删除对象(持久化操作)
if(stu!=null)
{
stu.setName("武松");
session.update(stu);
}
try {
//提交事务
tx.commit();
System.out.println("删除成功");
} catch (Exception e) {
//回滚事务
tx.rollback();
System.out.println("删除回滚");
}
Hibernate_until.closeSession();
}
public static void find()
{
Session session = Hibernate_until.getSession();
//获取部门的对象
Student stu=(Student)session.get(Student.class, new Integer(2));
System.out.println(stu);
} }

通过以上代码,我们就能轻松的使用框架向db端操作数据了

初识hibernate框架之一:进行简单的增删改查操作的更多相关文章

  1. 初识Hibernate框架,进行简单的增删改查操作

    Hibernate的优势 优秀的Java 持久化层解决方案  (DAO) 主流的对象—关系映射工具产品 简化了JDBC 繁琐的编码 将数据库的连接信息都存放在配置文件 自己的ORM框架 一定要手动实现 ...

  2. python3&period;6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作

    1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...

  3. 【OF框架】新建库表及对应实体,并实现简单的增删改查操作,封装操作标准WebApi

    准备 搭建好项目框架及数据库,了解框架规范. 1.数据库表和实体一一对应,表名实体名名字相同,用小写,下划线连接.字段名用驼峰命名法,首字母大写. 2.实体放在Entities目录下,继承Entity ...

  4. SSH(Struts 2&period;3&period;31 &plus; Spring 4&period;1&period;6 &plus; Hibernate 5&period;0&period;12 &plus; Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)

    软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...

  5. java&plus;jsp&plus;sqlserver实现简单的增删改查操作 连接数据库代码

    1,网站系统开发需要掌握的技术 (1)网页设计语言,html语言css语言等 (2)Java语言 (3)数据库 (4)等 2,源程序代码 (1) 连接数据库代码 package com.jaovo.m ...

  6. Java实现简单的增删改查操作

    需求分析:通过数组 ,完成 对学生信息的 管理 (增删改查)创建1个 学生类创建1个 CRUD的类 – 学生管理类 并测试 在这个程序中我只运用了两个类进行操作 package com.hopu.de ...

  7. nodejs链接mysql数据库,执行简单的增删改查操作

    var mysql = require('mysql'); var conn = mysql.createConnection({ host: 'localhost', user: 'root', p ...

  8. salesforce 零基础学习(五十一)使用 Salesforce&period;com SOAP API 实现用户登录以及简单的增删改查&lpar;JAVA访问salesforce&rpar;

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...

  9. 【Python &plus; Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作

    用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...

随机推荐

  1. Flask 吐血400错误

    的确地址或者method不匹配,这个容易解决 在后端中取到了form中不存在的元素! 这个很麻烦,特别form里面的信息比较多时!这个需要一一排查.另外取元素时最好用 request.form.get ...

  2. hdu 5925 Coconuts 离散化&plus;dfs

    Coconuts Time Limit: 9000/4500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem ...

  3. JS常用方法函数

    document.write("");为 输出语句    2.JS中的注释为//    3.传统的HTML文档顺序是:document->html->(head,bod ...

  4. 修饰符(static、final、abstract)第二篇

    二.Final 核心:一旦创建,不可修改 可修饰:(创建即终态) 1.类:被修饰后,将不能被继承 2.方法:被修饰后,将不能被覆写 3.属性:被创建,不可修改,且必须赋值(赋值的两种形式): 1.直接 ...

  5. &lbrack;JavaScript&rsqb; Array&period;prototype&period;reduce in JavaScript by example

    Let's take a closer look at using Javascript's built in Array reduce function. Reduce is deceptively ...

  6. Jasmine基础语法

    简介 Jasmine 是JavaScript的测试框架,它不依赖其他框架,也不依赖DOM,更重要的是它语法简单.以下实例都是基于Jasmine 2.5.2的,并且来自官网:https://jasmin ...

  7. 谈谈HTTP&sol;2对前端的影响【转载】

    原文:http://www.peep-squirrel.com/itcontent-2500617.html 随着 HTTP/2 规范的确认,以及主流浏览器(Chrome.Firefox.IE11)对 ...

  8. shell 常用正则表达式

    "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" ...

  9. Leetcode&lowbar;203&lowbar;Remove Linked List Elements

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45868027 Remove all elements fr ...

  10. c&plus;&plus; &lowbar;pFirstBlock &equals;&equals; pHead

    今天写程序时碰到了这个异常,导致调试的程序卡死.在网上找了很久答案,都没解决.大致判定是对象被多次析构,但又确认程序逻辑没有问题. 后来参考了 http://www.cnblogs.com/qinta ...