zoukankan      html  css  js  c++  java
  • Hibernate环境搭建+struts整合

    说明:本文档,是和struts2+hibernate的整合示例。

    lib下还有struts2的jar包,本示例没有显示。struts2的搭建参考struts2的环境搭建

    一下载hibernate的jar包,并将相关jar包导入的项目web-inf的lib下

    少了一个jar包,报错

    二:配置hibernate.cfg.xml文档

     1 <!DOCTYPE hibernate-configuration PUBLIC
     2     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     3     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     4 
     5 <hibernate-configuration>
     6     <session-factory >
     7         <!-- 全局开发配置 -->
     8         
     9             <!-- hibernate 会自动生成sql。  为了能够屏蔽 数据库的差异。  需要配置  数据库方言-->
    10              <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    11              
    12              <!-- 如果数据库中无相应的表的话,则自动生成一个与po对应的表  -->
    13              <property name="hibernate.hbm2ddl.auto">update</property>
    14             
    15              <!-- 在服务器后台打印出hibernate映射的sql语句 -->
    16              <property name="hibernate.show_sql" >true</property>
    17              <!-- sql语句格式化输出 -->
    18              <property name="format_sql">true</property>
    19         
    20         
    21         <!-- 数据库连接信息 -->
    22         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    23         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
    24         <property name="hibernate.connection.username">root</property>
    25         <property name="hibernate.connection.password">1234</property>
    26         
    27         
    28         
    29         <!-- java和数据的桥梁,映射java的实体类和数据库中的表 -->
    30         <mapping resource="com/bjsxt/shangxiaofei/po/User.hbm.xml"></mapping>
    31         
    32     </session-factory>
    33 </hibernate-configuration>
    View Code

    三:配置实体类User.hbm.xml文档作为映射桥梁

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 <hibernate-mapping 
     6     package="com.bjsxt.shangxiaofei.po"><!-- 实体类包名 -->
     7 
     8     <class name="User" table="t_user">
     9         
    10         
    11         <!-- 主键递增 -->
    12         <id name="id" column="id">
    13             <generator class="native"></generator>
    14         </id>
    15         
    16         <!-- 实体类中的属性名name映射成数据库表中的字段名column -->
    17         <property name="uname" column="uname"></property>
    18         <property name="pwd" column="pwd"></property>
    19         <property name="sex" column="sex"></property>
    20         
    21     </class>
    22     
    23 </hibernate-mapping>
    View Code

    四:编写sessionFactoryUtil工具类,用来加工session

     1 package com.bjsxt.shangxiaofei.util;
     2 
     3 
     4 
     5 import org.hibernate.Session;
     6 import org.hibernate.SessionFactory;
     7 import org.hibernate.cfg.Configuration;
     8 
     9 public class SessionFactoryUtil {
    10     //session工厂
    11     private static SessionFactory sessionFactory;
    12     
    13     /**
    14      * 静态初始块,用来初始化类的静态属性
    15      */
    16     static{
    17         //将hibernate.cfg.xml文档读入内存中
    18         Configuration configuration=new Configuration();
    19         configuration.configure();
    20         
    21         //初始化sessionFactory
    22         sessionFactory=configuration.buildSessionFactory();
    23     }
    24 
    25     //hibernate的session工厂
    26     public static SessionFactory getSessionFactory(){
    27         return sessionFactory;
    28     }
    29     
    30     //hibernate的Session
    31     public static Session getSession(){
    32         return sessionFactory.openSession();
    33     }
    34     
    35     public static void main(String[] args) {
    36         //可以通过运行此main方法,测试环境是否搭建好
    37     }
    38 }
    View Code

    五:测试,往数据库中插入一条数据

     1 package com.bjsxt.shangxiaofei.dao;
     2 
     3 import org.hibernate.Session;
     4 import org.hibernate.SessionFactory;
     5 
     6 import com.bjsxt.shangxiaofei.po.User;
     7 import com.bjsxt.shangxiaofei.util.SessionFactoryUtil;
     8 
     9 public class UserDao {
    10     public void addUser(){
    11         //获取java连接数据库的session对象,对jdbc的封装
    12         Session session=SessionFactoryUtil.getSession();
    13         //事务的开启
    14         session.beginTransaction();
    15         
    16         User user=new User();
    17         user.setUname("dsfasdsafsdaadf");
    18         user.setPwd("1sdafdf5");
    19         user.setSex("1");
    20         
    21         //往数据库中保存一个user
    22         session.save(user);
    23         //提交事务
    24         session.getTransaction().commit();
    25         
    26     }
    27     public static void main(String[] args) {
    28         //测试
    29         UserDao userDao=new UserDao();
    30         userDao.addUser();
    31     }
    32 }
    View Code
  • 相关阅读:
    使用vs code开发.net core2.2时OmniSharp.MSBuild.ProjectLoader无法解析"xxx"的解决方法
    An unexpected exception occurred while binding a dynamic operation 错误的一种情况
    node excel export包导致find函数被覆盖
    C#字典Dictionay多线程读是否是安全的
    mongodb数据分组按字符串split
    IIS做反向代理重定向到NodeJS服务器
    .net core 时间戳unix与本地时间互转、获取当前时间戳
    使用Postman调试asp.net core 控制器的action
    监听浏览器tab选项卡选中事件,点击浏览器tab标签页回调事件,浏览器tab切换监听事件
    vue、element-ui开发技巧
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/3912437.html
Copyright © 2011-2022 走看看