zoukankan      html  css  js  c++  java
  • 构建hibernate 框架实现增删改查功能

    第一步,新建一个项目 , 导包   一类是hibernate的jar包,一类是jdbc的jar包

    hibernate的jar包是注意红框的地址就是jar包的位置,将这些jar包全都导入lib根下;然后将jdbc的jar包导入lib根下。

    第二步:配置hibernate.cfg.xml文件

    查看搜索出来的文件,将带有

    划红框的五个属性名的文件复制到项目src根下,取名为hibernate.cfg.xml(可以取其他名字,不过要在配置中选择你取的名字,不然找不到)

    红框中的1 是方言  可以到查找,将这个文件拖拽到Eclipse中打开,Ctrl+F 查找dialect

    将我们需要的dialect.class的值复制粘贴到我们自己建的文件中  url,username,password 的值就用之前我们讲过的即可;

    配置文件中的 <property name="show_sql">true</property> 是为了在控制台显示sql语句

    这样hibernate框架环境就搭建好了

    第三步,建好hibernate框架之后 需要我们有对应的数据库和实体类,所以我们要去创建数据库表和相应的实体类

    同时要创建一个对应类名的hbm.xml文件,可以去在输入框中输入hbm.xml查询,查看我们查到的文件,拖拽到Eclipse中打开,

    这里的class是类名,name这里是Fruit的实体类地址   这里的地址可以在class的上级属性package中设置,这里就只需要实体类名

    这里的id是主键 (建议属性名和列名一致)

    这里的property是非主键 (建议属性名和列名一致)

    第四步,创建好库表和实体类之后我们新建一个mian来调用框架实现增删改查功能

    红字1是读取hibernate.cfg.xml的配置,并加载hibernate的数据库和实体类,这里就必须要在hibernate.cfg.xml中加入

    <mapping resource="com/itnba/maya/bean/Fruit.hbm.xml" /> 不然就找不到对应的hbm.xml文件,实现不了功能

    红字2是根据配置生成session工厂

    红字3是用工厂生成session

    红字4 关闭session会话

    第五步,实现功能

    1.增

    		Fruit data = new Fruit();           //new一个对象   这里是瞬时状态
    		data.setIds("i001");
    		data.setName("二萌");
    		data.setPrice(1.0);
    		data.setSource("山东");        //给对象赋值
    		data.setNumbers(1);
    		data.setImage("无");
    		try{
    			session.beginTransaction();        //开始事务 (不用事务会报错)
    			session.save(data);           //session.sava()方法保存 瞬时状态改变成持久化状态
    			session.getTransaction().commit();   //事务提交
    		}
    		catch(Exception es){  
    			session.getTransaction().rollback();    //出错时事务回滚
    		}
    		session.close();
    

    运行程序,在控制台显示sql语句

    查看数据库结果:可以看到数据库增加了一个 i001的数据

    2.查

    分为查看单个和查看所有

    查看单个

             try{
    			session.beginTransaction();                     
    			Fruit fruit = session.get(Fruit.class, "i001");     //也可以用session.load(Fruit.class,"i001") 查询单个
    			System.out.println(fruit.getName()+fruit.getSource()+fruit.getNumbers());    在控制台显示名称产地和库存
    			session.getTransaction().commit();
    		}
    		catch(Exception es){
    			session.getTransaction().rollback();
    		}
    		
    

    结果如下

    查所有

              try{
    			session.beginTransaction();
    			List<Fruit> list = session.createQuery("from Fruit").getResultList();         //查询出来的是一个集合
    			for(Fruit data : list){
    				System.out.println(data.getName()+data.getSource()+data.getNumbers());
    			}
    			session.getTransaction().commit();
    		}
    		catch(Exception es){
    			session.getTransaction().rollback();
    		}
    

     结果如下 

    3.删

    删和改  都需要我们先查出来然后再进行操作

    try{
    			session.beginTransaction();
    			Fruit data = session.get(Fruit.class, "i001");  //先查出来
    		if(data != null){
    			session.delete(data);                            //在进行删除操作
    			session.getTransaction().commit();
    		}
    		}
    		catch(Exception es){
    			session.getTransaction().rollback();
    		}
    		
    

    运行之后我们到数据库看下结果

    可以看到i001的数据已删除

    4.改

    try{
    			session.beginTransaction();
    			Fruit data = session.get(Fruit.class, "k001");            //先查询
    			if(data != null){
    			data.setName("苹果");                    //修改我们要改的属性
    			session.update(data);                    //再进行修改操作
    			session.getTransaction().commit();
    			}
    		}
    		catch(Exception es){
    			session.getTransaction().rollback();
    		}
    

    运行结果看下数据库:

    可以看到k001原来的name为二萌 现已改成苹果

    这样就简单利用hibernate 框架实现增删改查功能。

     

      

  • 相关阅读:
    ERP Odoo开发--Getting started with Odoo development --openerp
    5 Tips for Building a Winning DevOps Culture
    android stream media
    LDAP summary-- Python ldap
    android call and audio
    android bluetooth
    .windows安装使用这些偏底层的Python扩展太
    经典的DOS小命令 for 网络 nbtstat
    js和jquery设置disabled属性为true使按钮失效
    Several ports (8005, 8080, 8009)被占用
  • 原文地址:https://www.cnblogs.com/dnf1612/p/6496702.html
Copyright © 2011-2022 走看看