hibernate实现对sqlserver 2005的增删改查


整体的设计是如上图所示。

Hibernate所需要的jar包如下图所示:


Hibernate的整体配置文件:

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

<!DOCTYPE hibernate-configuration PUBLIC

         "-//Hibernate/Hibernate Configuration DTD3.0//EN"

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

<hibernate-configuration>

 

<session-factory>

    <property name="connection.url">

       jdbc:sqlserver://localhost:1433; DatabaseName=test

    </property>

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

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

    <property name="connection.driver_class">

       com.microsoft.sqlserver.jdbc.SQLServerDriver

    </property>

    <property name="dialect">

        org.hibernate.dialect.SQLServerDialect

    </property>

    <property name="show_sql">true</property>

    <property name="hibernate.hbm2ddl.auto">update</property>

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

 

</session-factory>

</hibernate-configuration>

 

日志配置log4j.properties:

log4j.rootLogger=WARN,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d%p[%c]-%m%n

 

User的配置文件User.hbm.xml:

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

<!DOCTYPE hibernate-mapping PUBLIC

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

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

    <hibernate-mapping package="com.xiao.domain">

   

    <class name="User" table="MyUser">

   

    <id name="id">

    <generator class="native"></generator>

    </id>

     <property name="name"/>

     <property name="birthday"/>

    </class>

   

    </hibernate-mapping>

 

实体类User,User.java:

package com.xiao.domain;

 

import java.util.Date;

 

publicclass User {

 

    privateintid;

    private String name;

    private Date birthday;

   

    publicint getId() {

       returnid;

    }

    publicvoid setId(int id) {

       this.id = id;

    }

    public String getName() {

       returnname;

    }

    publicvoid setName(String name) {

       this.name = name;

    }

    public Date getBirthday() {

       returnbirthday;

    }

    publicvoid setBirthday(Date birthday) {

       this.birthday = birthday;

    }

   

   

}

接口类UserDao,UserDao.java:

package com.xiao.dao;

 

import com.xiao.domain.User;

 

publicinterface UserDao {

 

    publicvoid saveUser(User user);

    public User findUserById(int id);

    public User findUserByName(String name);

    publicvoid updateUser(User user);

    publicvoid remove(User user);

   

}

Hibernate工具类HibernateUitl, HibernateUitl.java:

package com.xiao.dao;

 

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

 

publicfinalclass HibernateUitl {

    privatestatic SessionFactory sessionFactory;

 

    private HibernateUitl() {

    }

 

    static {

       Configuration cfg = new Configuration();

       cfg.configure();

       sessionFactory = cfg.buildSessionFactory();

    }

 

    publicstatic SessionFactory getSessionFactory() {

       returnsessionFactory;

    }

 

    publicstatic Session getSession() {

       returnsessionFactory.openSession();

    }

 

   

}

接口实现类UserDaoHibernateImpl,UserDaoHibernateImpl.java:

package com.xiao.dao.impl;

 

import org.hibernate.Criteria;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.criterion.Restrictions;

 

import com.xiao.dao.HibernateUitl;

import com.xiao.dao.UserDao;

import com.xiao.domain.User;

 

publicclass UserDaoHibernateImpl implements UserDao{

 

    @Override

    publicvoid saveUser(User user) {

      

       Session s = null;

       Transaction tx = null;

       try{

          

           s = HibernateUitl.getSession();

           tx =s.beginTransaction();

           s.save(user);

           tx.commit();

          

       }finally{

          

           if(s != null)

              s.close();

             

       }

      

    }

 

 

    @Override

    public User findUserByName(String name) {

      

       Session s = null;

       try{

          

           s = HibernateUitl.getSession();

           Criteria c = s.createCriteria(User.class);

           c.add(Restrictions.eq("name", name));

           User user = (User)c.uniqueResult();

           return user;

          

       }finally{

          

           if(s != null)

              s.close();

             

       }

 

    }

 

    @Override

    publicvoid updateUser(User user) {

      

       Session s = null;

       Transaction tx = null;

       try{

          

           s = HibernateUitl.getSession();

           tx = s.beginTransaction();

           s.update(user);

           tx.commit();

          

       }finally{

          

           if(s != null)

              s.close();

             

       }

    }

 

    @Override

    publicvoid remove(User user) {

      

       Session s = null;

       Transaction tx = null;

       try{

          

           s = HibernateUitl.getSession();

           tx = s.beginTransaction();

           s.delete(user);

           tx.commit();

          

       }finally{

          

           if(s != null)

              s.close();

             

       }

      

    }

 

    @Override

    public User findUserById(int id) {

      

       Session s = null;

       try{

          

           s = HibernateUitl.getSession();

           User user = (User)s.get(User.class, id);

           return user;

          

       }finally{

          

           if(s != null)

              s.close();

             

       }

 

    }

 

}

测试类DaoTestDaoTest.java

package com.xiao;

 

import java.util.Date;

 

import com.xiao.dao.UserDao;

importcom.xiao.dao.impl.UserDaoHibernateImpl;

import com.xiao.domain.User;

 

public class DaoTest {

 

         publicstatic void main(String[] args) {

                  

                   UserDaouserDao = new UserDaoHibernateImpl();

                   Useruser = new User();

                   user.setName("肖杰");

                   user.setBirthday(newDate());

                   userDao.saveUser(user);

                  

         }

        

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值