文档章节

SSH入门系列8:Hibernate配置

O
 ORZ你好
发布于 2017/08/05 14:04
字数 543
阅读 3
收藏 0
点赞 0
评论 0

搭配Hibernate环境有如下步骤:

1新建一个动态网页项目后,导入相关包。相关包在相应的required文件夹下,同时加载数据库jdbc文件

2在src目录下,新建hibernate.cfg.xml  ,该名字不建议修改,简化版本的如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="SessionFactory">
        <property name="hibernate.show_sql">true</property>
 <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=MyDataBase</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password">123456</property

<propertyname="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
         <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
         <property name="hibernate.c3p0.max_size">20</property>
                  <!-- 最小连接数 -->
       <property name="hibernate.c3p0.min_size">5</property>
              <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
     <property name="hibernate.c3p0.timeout">120</property>
             <!-- 最大的PreparedStatement的数量 -->
      <property name="hibernate.c3p0.max_statements">100</property>
            <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
      <property name="hibernate.c3p0.idle_test_period">120</property>
            <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
      <property name="hibernate.c3p0.acquire_increment">2</property>
            <!-- 每次都验证连接是否可用 -->
       <property name="hibernate.c3p0.validate">true</property>

        <mapping resource="com/model/User.hbm.xml"></mapping>

3编写与数据库对应的类,比如在MyDataBase数据库下有个_login的表,分别有id ,name ,password。这时做如下设计:

public class User {
    private int id;
    private String username ;
    private String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}

 

4建立隐射文件User.hbm.xml,要求与类在同一个包下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2016-9-5 19:57:46 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="com.model.User" table="_login">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />

//native 表示自行判断,如果用increment则表示递增


        </id>
        <property name="username" type="java.lang.String">
            <column name="name" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" />
        </property>
    </class>
</hibernate-mapping>

 

最后一个测试程序:


        Configuration  config  =new Configuration().configure();
          SessionFactory  sessionFactory = config.buildSessionFactory();
          Session  session = sessionFactory.openSession();
          Transaction   tc = null;
          try {
              //开启事物
              tc = session.beginTransaction();
              User user = (User)session.get(User.class, new Integer(3));
              System.out.println("用户名为:"+user.getUsername()+";用户密码为:"+user.getPassword());
              //提交事物
              tc.commit();
        } catch (Exception e) {
            // 不是空值则回滚
          if (tc!=null) {
            tc.rollback();
        }
          e.printStackTrace();
        }finally{
            session.close();
        }
      }
    }

 

© 著作权归作者所有

共有 人打赏支持
O
粉丝 0
博文 15
码字总数 8932
作品 0
南京
Java Web学习计划

--- 本月为入门阶段,从零开始,一步一步的做出一个实用的网站。 深入学习Java语言,初步掌握前端技术,使用JSP和MySQL完成一个简单的网站 第1周 Java高级编程学习目标:
1.深入了解JDK环境...

SVD
2016/12/01
55
0
Jenkins入门系列

enkins 是一个可扩展的持续集成引擎。 主要用于: l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。 Jenkins拥有的特性包括: l 易于安装-只要把jenkins.war部署到servlet容器...

harries
2016/04/21
218
0
Jenkins入门系列

Jenkins 是一个可扩展的持续集成引擎。 主要用于: l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。 Jenkins拥有的特性包括: l 易于安装-只要把jenkins.war部署到servlet容器...

外星人et59
2016/04/21
0
0
【j360-boot】Spring-boot系列三(崩溃模式,不是你崩就是电脑崩)

j360-boot spring-boot入门工程之j360-boot:(欢迎star、fork) https://github.com/xuminwlt/j360-boot spring-boot官方地址 http://projects.spring.io/spring-boot/ 【j360-boot】Sprin......

Hi徐敏
2015/09/24
1K
0
【持久化框架】Mybatis与Hibernate的详细对比

前言 这篇博文我们重点分析一下Mybatis与Hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理。 Mybatis 【持久化框架】Mybatis简介与原理 【持久化框架】Spr...

sietai
05/18
0
0
SSH框架自学困惑,望前辈没给点指导。

学了几天ssh,刚刚入门struts,然后大致看了下hibernate,感觉有好多地方进行各种各样的配置。 感觉实在有点麻烦。是不是还没学到深处的原因?希望前辈没给点指导,给点方向。 本人JAVA完全是...

听_风
2014/10/13
672
14
Hibernate 学习资料汇总

1.Hibernate系列——总结篇(http://blog.csdn.net/jiuqiyuliang/article/details/41318751) 2.Hibernate框架简述(http://www.cnblogs.com/eflylab/archive/2007/01/09/615338.html) 3.Hiber......

IT追寻者
2016/08/06
20
0
求spring高手指点

为什么我这样整合SSH,spring2.5无法实例化SessionFactory beans.xml配置

说说笑笑
2010/07/28
618
14
《Java 系列》- 目录

基础 《Java基础 系列》 - 反射 《Java基础 系列》 - 枚举 《Java基础 系列》 - JDBC 《Java基础 系列》 - JDK动态代理 《Java基础 系列》 - CGLIB字节码代理 《Java基础 系列》 - 注解 多线...

Kimisme
2017/12/29
11
0
我为什么不用hibernate而用ibatis

入行前几年,一味追求框架SSH,使用并潜心研究。随着阅历和能力的增加,对系统的把控欲越来越强,近年已经甚少用Hibernate(也指JPA),我总结为以下几点原因: 1、Hibernate学习曲线陡峭、时...

foodon
2014/10/29
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(七)-添加自定义View和对其

CoreText进阶(七)-添加自定义View和对其 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更多...

aron1992
15分钟前
0
0
Python爬虫 爬取百合网的女人们和男人们

学Python也有段时间了,目前学到了Python的类。个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇。 据书上说...

p柯西
26分钟前
0
0
在Java中,你真的会日期转换吗

1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormatis a concrete class for formatting and parsing dates in a locale-sensitive manner. It allows fo......

Java小铺
35分钟前
0
0
Linux系统梳理---系统搭建(二):tomcat的安装和使用

上一章讲到JDK的安装使用,这一章主要记录下服务器tomcat的安装以及部署一个项目. 1.下载tomcat,这里下载的是apache-tomcat-8.5.32.tar.gz 2.创建文件夹,便于管理,和JDK一样,在usr目录下创建t...

勤奋的蚂蚁
45分钟前
0
0
ES15-聚合

1.Terms Aggregation 分组聚合 2.Filter Aggregation 过滤聚合

贾峰uk
46分钟前
0
0
【2018.07.19学习笔记】【linux高级知识 20.27-20.30】

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数

lgsxp
49分钟前
0
0
10.32/10.33 rsync通过服务同步~10.35 screen工具

通过服务的方式同步要编辑配置文件:[root@linux-xl ~]# vim /etc/rsyncd.confport=873log file=/var/log/rsync.logpid file=/var/run/rsyncd.pidaddress=192.168.43.21[tes...

洗香香
52分钟前
0
0
与女儿谈商业模式 (3):沃尔玛的成功模式

分类:与女儿谈商业模式 | 标签: 经济学 沃尔玛 陈志武 2007-05-10 09:09阅读(11279)评论(30) 与女儿谈商业模式 (3):沃尔玛的成功模式 陈志武 /文 沃尔玛(Wal-Mart)是另一个有意思的财...

祖冲之
59分钟前
0
0
网页加载速度优化方法总结

1、减少请求 最大的性能漏洞就是一个页面需要发起几十个网络请求来获取诸如样式表、脚本或者图片这样的资源,这个在相对低带宽和高延迟的移动设备连接上来说影响更严重。 2、整合资源 对开发...

Jack088
今天
0
0
dubbo学习

https://blog.csdn.net/houshaolin/article/details/76408399

喵五郎
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部