前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >杨老师课堂之基于注解的SSH整合案例

杨老师课堂之基于注解的SSH整合案例

作者头像
杨校
发布2018-12-24 11:37:30
5740
发布2018-12-24 11:37:30
举报
文章被收录于专栏:Java技术分享圈Java技术分享圈

基于注解的SSH整合

  1. 开发环节步骤: 实体类 —–> DAO开发 —–> Service开发 —–> Action动作类开发 —–> 配置文件(applicationContext.xml)
  2. 导包: Struts2需要导入的jar: asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.3.1.jar commons-io-2.2.jar commons-lang3-3.2.jar freemarker-2.3.22.jar javassist-3.11.0-GA.jar log4j-core-2.2.jar log4j-api-2.2.jar ognl-3.0.6.jar struts2-core-2.3.24.jar xwork-core-2.3.24.jar struts2-spring-plugin-2.3.24.jar struts-contention-plugin-2.3.14.jar 导入struts2的注解开发包:struts-contention-plugin-2.3.14.jar ​ |—— 注意: 如果不使用注解开发,千万不要导入这个包 spring需要导入的jar: spring-aop-4.24.RELEASE.jar spring-aspectJ-4.24.RELEASE.jar spring-beans-4.24.RELEASE.jar spring-context-4.24.RELEASE.jar spring-core-4.24.RELEASE.jar spring-expression-4.24.RELEASE.jar spring-jdbc-4.24.RELEASE.jar spring-orm-4.24.RELEASE.jar spring-test-4.24.RELEASE.jar spring-tx-4.24.RELEASE.jar spring-web-4.24.RELEASE.jar commons-logging-1.2.jar com.springsource.org.com.mchange.v2.c3p0-0.9.1.2.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar hibernate需要导入的jar: antrl2-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar geronimo-jpa-2.0-api-1.0.1.Final.jar hibernate-core.5.0.7.Final.jar hibernate-jpa-2.1.Final.jar jandex-2.0.0.Final.jar javassist-3.18.1-GA.jar jboss-logging-3.3.0.Final.jar 2.1 配置文件详解见 其他文章
    1. 实体类开发:

    package cn.javabs.entity; @Entity @Table(name="t_user") public class User{ @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; @Column(name="username",length=50) private String username; private String password; // 此处省略getter和setter方法 } 在上述代码中: ​ @Entity 注解为实体类制定类的路径 ​ @Id 注解是制定id为主键 ​ @Generated 注解是为主键制定生成策略 以上注解实际上代表着hibernate的实体映射文件User.hbm.xml的功能。

    1. DAO开发

    @Repository public class UserDaoImpl implementsn UserDao{ @Autowired private HibernateTemplate hibernateTemplate;//提供Hibernate模板 public User findById(Integer id){ return this.hibernateTemplate.get(User.class,id); } public List<User> findAll(){ this.hibenrateTemplate.find("from User"); } public void save(User user){ this.hibernateTemplate.save(user); } public void update(User user){ this.hibernateTemplate.update(user); } public void delete(User user){ this.hibernateTemplate.delete(user); } }

    1. Service开发

    @Service public class UserServiceImpl implements UserService{ @Autowired private UserDao userDao; @Transactional public void saveUser(User user){ this.userDao.save(user); } @Transactional public void updateUser(User user){ this.userDao.update(user); } @Transactional public void deleteUser(User user){ this.userDao.delete(user); } @Transactional(readOnly=true) public User findUserById(Integer id){ return this.userDao.findById(id); } @Transactional(readOnly=true) public User findAll(){ return this.userDao.findAll(); } } 在上述代码中,使用@Service 注解用于标注Service层信息 @Autowired 用于自动注入UserDao接口 @Transactional注解用于配置事务,此时可以删除掉spring配置文件中的相关的配置信息

    1. Action开发

    @Namespace("/") @ParentPackage("struts-default") @Controller public class UserAction extentds ActionSupport implements ModelDriven<User>{ //封装数据 private User user = new User(); public User getModel(){ return user; } @Autowired private UserService userService; @Action(value="userAction_add",results={@Result(name="add",location="/success.jsp")}) public String add(){ userService.saveUser(user); return "add"; } } 在以上代码中, @Namespace 和 @ ParentPackage 注解用于代替 Struts2 配置文件中对action的配置 @Controller 注解用于Spring 容器中注册UserManagerAction实例

    1. applicationContext.xml配置文件开发

    <beans> <!--1. 配置扫描--> <context:component-scan base-package="cn.javabs"></context:component-scan> <!--2.配置SessionFactory--> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!--2.1 加载hibernate核心配置文件--> <property name="configLocation"> value="classpath:hibernate.cfg.xml"></property> </bean> <!--3.配置hibernate模板--> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"> <!--3.1 通过工厂获取session,操作PO类--> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!--4.事务管理--> <bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!--事务注解驱动--> <tx:annotation-driven transaction-manager="txManager"/> </beans> 6.hibernate.cfg.xml开发 <hibernate-configuration> <session-factory> <!--1.基本4项--> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/user</property> <property name="connection.username">root</property> <property name="connection.password">sorry</property> <!--2.数据库方言--> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!--3.配置处理SQL信息--> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl_auto">update</property> <!--4.取消Bean验证--> <property name="show_sql">true</property> <!--5.整合 c3p0--> <property name="connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider </property> <!--6.添加映射信息--> <mapping class = "cn.javabs.entity.User"/> </session-factory> </hibernate-configuration>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于注解的SSH整合
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档