第一步,新建一个项目 , 导包 一类是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 框架实现增删改查功能。