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

Hibernate的优势

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

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

l 简化了JDBC 繁琐的编码

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

l 自己的ORM框架

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

一:创建一个java project项目

如下图

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>

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

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

三: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端操作数据了

时间: 2024-12-12 12:37:14

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

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

var mysql = require('mysql'); var conn = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database:'nodejs', port: 3306 }); conn.connect(); //查询 // conn.query('SELECT * from user where name="wangzhiwei"', function(err, res

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

MyBatis学习--简单的增删改查

jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] args) { 2 Connection connection = null; 3 PreparedStatement preparedStatement = null; 4 ResultSet resultSet = null; 5 6 try { 7 //加载数据库驱动 8 Class.forName

EF5(6) 简单三层 增删改查

1:项目结构 2:每层添加对其他层的引用,这里我们把除了Web层之外的所有的层生成的文件都放到解决方案下的Library文件夹下,然后每个项目分别来引用里面的dll项目文件. 我们在Model项目上,右键属性->生成-> 在下面的输出里面,选择上一级的 Library文件夹 2.2 我们调整项目的生成顺序 ,在解决方案或者是任意项目上右键,选择 生成依赖项,调整各个项目的依赖,这样的目的就是调整项目的生成顺序. 注意,这里你选择依赖项,并没有给项目与项目之间增加了dll的引用,只是单纯的修改了

列表的初识,列表的索引切片,列表的增删改查,列表的嵌套,元组的初识,range

1 内容总览 列表的初识 列表的索引切片 列表的增删改查 列表的嵌套 元组的初识(了解) 元组的简单应用(了解) range 2 具体内容 列表的初识 why: str: 存储少量的数据.切片出来全都是str类型,存储的数据单一. list:能储存大量的数据.包含不同类型的数据.且有顺序,有规律,可自己制作设计其中的数据,可修改 what:list l1 = [100, 'alex',True,[1, 2, 3]] 可承载任意数据类型,存储大量的数据. python常用的容器型数据类型. 列表是

Mybatis实现简单的数据库增删改查操作

Mybatis实现简单的数据库增删改查操作 框架:mybatis(3.5.2) 数据库:mysql 工具:idea 1.新建一个maven项目,在pom文件中添加mybatis依赖及MySQL依赖 <!-- mybatis核心依赖 --> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId&g

Mybatis使用之简单的增删改查

Mybatis使用之简单的增删改查 一:简介 主要记录最简单的数据的增删改查.下一章会有各个操作详细一点的配置说明.以Author表为例(见上一博客).Author表没有关联任何其他表.也没有特殊字段. 二:映射规则 2.1.映射文件中的sql方法与对应的XxxMapper接口中的方法映射规则: a)映射文件的namespace的值是XxxMapper接口的全限定名.即包名+接口名称 b)映射文件中表示增删改查的标签(select.insert.delete.update)的id的值是接口中方法

通过JDBC进行简单的增删改查

通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)update (5)select (6)delete 四.测试 五.代码分析 六.思考问题 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "