您现在的位置是:首页 > 文章详情

Spring+Hibernate+Jersey整合

日期:2021-05-20点击:391

导入需要的jar包

项目结构

Spring配置

classpath:database.propertiescom.test.bean${hibernate.dialect}${hibernate.show_sql}${hibernate.format_sql}



数据库连接配置

jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=root jdbc.initialPoolSize=30 jdbc.minPoolSize=20 jdbc.maxPoolSize=100 jdbc.maxIdleTime=600 jdbc.maxStatements=200 jdbc.acquireIncrement=10 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.show_sql=false hibernate.format_sql=true


log4j配置

#log4j.rootLogger=DEBUG,A1,R log4j.rootLogger=INFO,A1,R log4j.logger.com.augmentum=DEBUG log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=[%d %6p at %C.%M(%F:%L)] %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=C://logs//a.log log4j.appender.R.Append=true log4j.appender.R.DatePattern=.yyyy-MM-dd.log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[%d %6p at %C.%M(%F:%L)] %m%n


web.xml配置

testindex.htmlcontextConfigLocationclasspath:applicationContext.xmlorg.springframework.web.context.ContextLoaderListenerJerseyServletcom.sun.jersey.spi.spring.container.servlet.SpringServletcom.sun.jersey.config.property.packagescom.test.resourceJerseyServlet/resource/*



Javabean

package com.test.bean; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "user") public class User {     @Id     @GeneratedValue(strategy = GenerationType.AUTO)     @Column(name = "id")     private Integer id;     @Column(name = "username")     private String username;     @Column(name = "password")     private String password;      @Override     public String toString() {         return "User [id=" + id + ", username=" + username + ", password=" + password + "]";     }     public Integer getId() {         return id;     }     public void setId(Integer 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;     } }

 

Dao层

basedao

package com.test.dao; import java.io.Serializable; import java.util.List; /**  * The base interface for all the dao layer interface,it provide common method  *  * @author Irwin.Ai  *  * @param*            The entity class type  * @param*            The primary key of the entity class  */ public interface BaseDao{     public T add(T t);     public void delete(T t);     public T load(PK id);     public T get(PK id);     public ListloadAll();     public T update(T t); }

 

userdao

package com.test.dao; import com.test.bean.User; public interface UserDao extends BaseDao{ }

 

Dao层实现

basedao实现

package com.test.dao.impl; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import javax.annotation.Resource; import org.hibernate.Session; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; import com.test.dao.BaseDao; /**  * The base interface implement for all the dao layer interface implements,it  * provide common method  *  * @author Irwin.Ai  *  * @param*            The entity class type  * @param*            The primary key of the entity class  */ @Repository public class BaseDaoImplimplements BaseDao{     private ClassentityClass;     private HibernateTemplate hibernateTemplate;     public HibernateTemplate getHibernateTemplate() {         return hibernateTemplate;     }     @Resource     public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {         this.hibernateTemplate = hibernateTemplate;     }     /**      * Method to judge the type of class      */     @SuppressWarnings("unchecked")     public BaseDaoImpl() {         Type type = getClass().getGenericSuperclass();         if (type instanceof ParameterizedType) {             Type[] types = ((ParameterizedType) type).getActualTypeArguments();             this.entityClass = (Class) types[0];         }     }     @Override     public T add(T t) {         hibernateTemplate.save(t);         return t;     }     @Override     public void delete(T t) {         hibernateTemplate.delete(t);     }     @Override     public T load(PK id) {         return hibernateTemplate.load(entityClass, id);     }     @Override     public ListloadAll() {         return hibernateTemplate.loadAll(entityClass);     }     @Override     public T update(T t) {         hibernateTemplate.update(t);         return t;     }     @Override     public T get(PK id) {         return hibernateTemplate.get(entityClass, id);     }     /**      * If there is a session alive, we will use it instead of open an new      * Session.      *      * @return      */     public Session getCurrentSession() {         Session session = hibernateTemplate.getSessionFactory()                 .getCurrentSession();         if (session == null) {             session = hibernateTemplate.getSessionFactory().openSession();         }         return session;     } }

 

userdao实现

package com.test.dao.impl; import org.springframework.stereotype.Repository; import com.test.bean.User; import com.test.dao.UserDao; @Repository public class UserDaoImpl extends BaseDaoImplimplements UserDao{ }

 

service层

baseservice

package com.test.service; import java.io.Serializable; import java.util.List; /**  * * The base interface for all the service layer interface,it provide common  * method  *   * @author Irwin.Ai  *   * @param*            The entity class type  * @param*            The primary key of the entity class  */ public interface BaseService{     public T add(T t);     public void delete(T t);     public T load(PK id);     public T get(PK id);     public ListloadAll();     public T update(T t); }

 

userservice

package com.test.service; import com.test.bean.User; public interface UserService extends BaseService{ }

 

service层实现

baseservice实现

package com.test.service.impl; import java.io.Serializable; import java.util.List; import com.test.dao.BaseDao; import com.test.service.BaseService; /**  * * The base interface implement for all the service layer interface  * implements,it provide common method  *  * @author Irwin.Ai  *  * @param*            The entity class type  * @param*            The primary key of the entity class  */ public class BaseServiceImplimplements         BaseService{     private BaseDaobaseDao;     public BaseDaogetBaseDao() {         return baseDao;     }     public void setBaseDao(BaseDaobaseDao) {         this.baseDao = baseDao;     }     @Override     public T add(T t) {         return baseDao.add(t);     }     @Override     public void delete(T t) {         baseDao.delete(t);     }     @Override     public T load(PK id) {         return baseDao.load(id);     }     @Override     public ListloadAll() {         return baseDao.loadAll();     }     @Override     public T update(T t) {         return baseDao.update(t);     }     @Override     public T get(PK id) {         return baseDao.get(id);     } }

 

userservice实现

package com.test.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.test.bean.User; import com.test.dao.UserDao; import com.test.service.UserService; @Service public class UserServiceImpl extends BaseServiceImplimplements UserService {     @Resource     public void setBaseDao(UserDao userDao) {         super.setBaseDao(userDao);     } }



jersey resource类示例

package com.test.resource; import java.util.List; import javax.annotation.Resource; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import com.google.gson.Gson; import com.sun.jersey.spi.resource.Singleton; import com.test.bean.User; import com.test.service.UserService; @Path("/users") @Singleton @Controller public class UserResource {     private static Logger logger = Logger.getLogger(UserResource.class);     @Resource     private UserService userService;     @GET     @Produces(MediaType.TEXT_PLAIN)     public String getAllUser() {         Listlist = null;         String str = null;         try {             list = userService.loadAll();             str = new Gson().toJson(list);         } catch (Exception e) {             logger.error("load all exception : ", e);         }         return str;     } }

 

页面访问测试

我们现在访问页面http://localhost:8080/SSJTest/resource/users


取到返回的json数据。



原文链接:https://blog.51cto.com/u_14916031/2794071
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章