zoukankan      html  css  js  c++  java
  • Hibernate入门级demo 配置连接 Sql Server 2005 (Hibernate in Action)

    1 SQL Server中数据库hbm中设计一个MESSAGES,其中MESSAGE_ID是主键,自动编号.

    2         编写一个数据库的Bean

    package com.hibernateinaction.hello;

     

    public class Message {

        private long id;

        private String text;

     

        public Message() {

     

        }

     

        public void setId(long id) {

           this.id = id;

        }

     

        public long getId() {

           return id;

        }

     

        public void setText(String text) {

           this.text = text;

        }

     

        public String getText() {

           return text;

        }

    }

     

    3 编写映射文件Message.hbm.xml,其中<generator class="native" />表示是自动编号,这个文件和类文件放在同一目录

    <?xml version="1.0" encoding='UTF-8'?>

    <!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD//EN"

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

    <hibernate-mapping>

        <class name="com.hibernateinaction.hello.Message" table="MESSAGES">

           <id name="id" column="MESSAGE_ID">

               <generator class="native" />

           </id>

           <property name="text" column="MESSAGE_TEXT" />

        </class>

    </hibernate-mapping>

    4 编写hibernate配置文件hibernate.cfg.xml, 这个文件放在源码的根目录,注意文件名一定要是这个,因为我们后面要使用函数Configuration configure() ,配置好数据库命,用户名,密码等,还要注意数据库的tcp/ip协议时允许的,SQL Server服务已经启动.最后面有一个映射的引用,引用到我们刚刚写的mapping文件.注意路径要正确.

    文档中写道:

              Use the mappings and properties specified in an application resource named 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">

     

    <!-- Generated by MyEclipse Hibernate Tools. -->

    <hibernate-configuration>

        <session-factory>

           <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

           <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;database=hbm</property>

           <property name="connection.username">sa</property>

           <property name="connection.password">sa</property>

           <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>

           <mapping resource="com/hibernateinaction/hello/Message.hbm.xml" />

        </session-factory>

    </hibernate-configuration>

     

    5. log4j的配置文件,由于hibernate是依赖于log4j,所以需要有这个配置文件,否则会有warning.

     

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

     

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

        <appender name="console" class="org.apache.log4j.ConsoleAppender">

           <param name="Target" value="System.out" />

           <layout class="org.apache.log4j.PatternLayout">

               <param name="ConversionPattern" value="%-5p %c{1} - %m%n" />

           </layout>

        </appender>

     

        <root>

           <priority value="debug" />

           <appender-ref ref="console" />

        </root>

     

    </log4j:configuration>

     

    添加依赖的JAR

    包括Hibernate的所有jar.另外还需要而外的两个jar

    slf4j-log4j12-1.5.6.jar

    log4j-1.2.14.jar

    还有就是sql server的驱动jar,这个在微软的网站上有:

    sqljdbc.jar sqljdbc4.jar

    所依赖的JAR包如下图所示:

     

    未必全部用到,但是这样肯定是没有问题的

    使用的编译环境是JRE1.6 Hibernate版本是3.5.6 数据库是SQL Server 2005 Developer Edition

    最后编写一个测试用的主函数

    package com.hibernateinaction.hello;

     

    import org.hibernate.SessionFactory;

    import org.hibernate.Transaction;

    import org.hibernate.cfg.Configuration;

    import org.hibernate.classic.Session;

     

    public class App {

        public static void main(String[] args) {

           Configuration cfg = new Configuration();

           SessionFactory sf = cfg.configure().buildSessionFactory();

           Session s = sf.openSession();

           Transaction tx = s.beginTransaction();

     

           Message msg = new Message();

           msg.setId(1);

           msg.setText("new message");

           s.save(msg);

           tx.commit();

     

           s.close();

           System.out.println("end");

     

        }

    }

    成功之后会在数据库的MESSAGES表中生成一条记录,OK,hibernate Demo配置完成.

  • 相关阅读:
    链表--判断一个链表是否为回文结构
    矩阵--“之”字形打印矩阵
    二叉树——平衡二叉树,二叉搜索树,完全二叉树
    链表--反转单向和双向链表
    codeforces 490C. Hacking Cypher 解题报告
    codeforces 490B.Queue 解题报告
    BestCoder19 1001.Alexandra and Prime Numbers(hdu 5108) 解题报告
    codeforces 488A. Giga Tower 解题报告
    codeforces 489C.Given Length and Sum of Digits... 解题报告
    codeforces 489B. BerSU Ball 解题报告
  • 原文地址:https://www.cnblogs.com/oyjj/p/2132934.html
Copyright © 2011-2022 走看看