Spring_SSH_JSP_Entity_Service_Hibernate_Interface

1.目录结构

2.jar包

3.User

package com.cloud.oss.domain.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * @author cloud
 * @Date 2016年5月26日
 * @Version 1.0
 * @Description
 */
@Entity
public class User {
    private int id;
    private String username;
    private String password;

    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

 

4.UserDao

package com.cloud.oss.domain.dao;

import com.cloud.oss.domain.model.User;
/**
 * 
 * @author cloud
 * @Date 2016年6月2日
 * @Version 1.0
 * @Description:
 *             1.UserDao定义接口规范,具体实现需要他的实现类来操作,实现类可以使用Hibernate存到数据库
 */
public interface UserDao {
    public User findUserByName(String name);
    public void save(User user);
}

 

5.UserDaoImp

package com.cloud.oss.domain.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.cloud.oss.domain.model.User;
import com.cloud.oss.domain.utils.HibernateUtil;

/**
 * 
 * @author cloud
 * @Date 2016年6月2日
 * @Version 1.0
 * @Description:具体实现与数据库打交道
 */
public class UserDaoImp implements UserDao{

    @Override
    public User findUserByName(String name) {
        SessionFactory sf = HibernateUtil.getSessionFactory();
        Session session = sf.getCurrentSession();
        session.beginTransaction();
        User user =  (User) session
                .createQuery(
                        "from User u where u.username = :username")
                .setString("username", name).uniqueResult();
        session.getTransaction().commit();
        return user;
    }

    @Override
    public void save(User user) {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        session.beginTransaction();
        session.save(user);
        session.getTransaction().commit();
    }
}

 

6.UserService

package com.cloud.oss.domain.service;

import com.cloud.oss.domain.model.User;

/**
 * @author cloud
 * @Date 2016年5月26日
 * @Version 1.0
 * @Description:定义接口规范,可以对外提供什么服务
 */
public interface UserService {
    public boolean exists(User user);
    public void add(User user);

}

 

7.UserServiceImp

package com.cloud.oss.domain.service;

import com.cloud.oss.domain.dao.UserDao;
import com.cloud.oss.domain.dao.UserDaoImp;
import com.cloud.oss.domain.model.User;

/**
 * @author cloud
 * @Date 2016年5月26日
 * @Version 1.0
 * @Description:具体实现,绑定不同的DAO可以使用不同的存储技术
 */
public class UserServiceImp implements UserService {

    private UserDao userDao = new UserDaoImp();

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void add(User user) {
        userDao.save(user);
    }

    @Override
    public boolean exists(User user) {
        User u = userDao.findUserByName(user.getUsername());
        return u == null ? false : true;
    }

}

 

8.HibernateUtils

package com.cloud.oss.domain.utils;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;


/**
 * @author cloud
 * @Date 2016年5月26日
 * @Version 1.0
 * @Description
 */
public class HibernateUtil {
    /**
     * 静态实例域实际上就是一个单例,所有的对象共用一个实例
     */
    private static SessionFactory sessionFactory;
    static{
        sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    }
    
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
}

 

9.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>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/spring</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
       <!--
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:SXT</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>
          <property name="dialect">org.hibernate.dialect.OracleDialect</property>
       -->

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <!-- Drop and re-create the database schema on startup
        <property name="hbm2ddl.auto">update</property>
         -->
        <mapping class="com.cloud.oss.domain.model.User"/>
    </session-factory>
</hibernate-configuration>

 

10.TestHibernate

package com.cloud.oss.domain.test;

import com.cloud.oss.domain.model.User;
import com.cloud.oss.domain.service.UserService;
import com.cloud.oss.domain.service.UserServiceImp;

public class TestHibernate {
    public static void main(String[] args) {
        UserService service = new UserServiceImp();
        User user = new User();
        user.setUsername("cloud");
        user.setPassword("cloud");
        System.out.println(service.exists(user));
        service.add(user);
    }
}

 


 

posted @ 2016-06-02 23:08  桃源仙居  阅读(138)  评论(0)    收藏  举报