博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杨老师课堂之基于注解的SSH整合案例
阅读量:6345 次
发布时间:2019-06-22

本文共 4946 字,大约阅读时间需要 16 分钟。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/81295201

基于注解的SSH整合

  1. 开发环节步骤:

    实体类 —–> DAO开发 —–> Service开发 —–> Action动作类开发 —–> 配置文件(applicationContext.xml)

  2. 导包:

    Struts2需要导入的jar:

    asm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcommons-fileupload-1.3.1.jarcommons-io-2.2.jarcommons-lang3-3.2.jarfreemarker-2.3.22.jarjavassist-3.11.0-GA.jarlog4j-core-2.2.jarlog4j-api-2.2.jarognl-3.0.6.jarstruts2-core-2.3.24.jarxwork-core-2.3.24.jarstruts2-spring-plugin-2.3.24.jarstruts-contention-plugin-2.3.14.jar

    导入struts2的注解开发包:struts-contention-plugin-2.3.14.jar

    ​ |—— 注意: 如果不使用注解开发,千万不要导入这个包

    spring需要导入的jar:

    spring-aop-4.24.RELEASE.jarspring-aspectJ-4.24.RELEASE.jarspring-beans-4.24.RELEASE.jarspring-context-4.24.RELEASE.jarspring-core-4.24.RELEASE.jarspring-expression-4.24.RELEASE.jarspring-jdbc-4.24.RELEASE.jarspring-orm-4.24.RELEASE.jarspring-test-4.24.RELEASE.jarspring-tx-4.24.RELEASE.jarspring-web-4.24.RELEASE.jarcommons-logging-1.2.jarcom.springsource.org.com.mchange.v2.c3p0-0.9.1.2.jarcom.springsource.org.aopalliance-1.0.0.jarcom.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

    hibernate需要导入的jar:

    antrl2-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jargeronimo-jpa-2.0-api-1.0.1.Final.jarhibernate-core.5.0.7.Final.jarhibernate-jpa-2.1.Final.jarjandex-2.0.0.Final.jarjavassist-3.18.1-GA.jarjboss-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开发
    @Repositorypublic class UserDaoImpl implementsn UserDao{
    @Autowired private HibernateTemplate hibernateTemplate;//提供Hibernate模板 public User findById(Integer id){ return this.hibernateTemplate.get(User.class,id); } public List
    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开发
    @Servicepublic 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")@Controllerpublic class UserAction extentds ActionSupport implements ModelDriven
    {
    //封装数据 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配置文件开发
    value="classpath:hibernate.cfg.xml">

    6.hibernate.cfg.xml开发

    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/user
    root
    sorry
    org.hibernate.dialect.MySQL5Dialect
    true
    true
    update
    true
    org.hibernate.connection.C3P0ConnectionProvider

作者: 杨校

出处:

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

你可能感兴趣的文章
java B2B2C Springcloud电子商城系统—Feign实例
查看>>
java B2B2C Springcloud多租户电子商城系统 (五)springboot整合 beatlsql
查看>>
Throwable是一个怎样的类?
查看>>
Python基础(一)
查看>>
三条代码 搞定 python 生成验证码
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
无线和有线路由哪种性能更好
查看>>
Dwr3.0纯注解(纯Java Code配置)配置与应用浅析三之后端反向调用前端
查看>>
Ubuntu下安装遨游浏览器
查看>>
自定义Linux service脚本
查看>>
微信开发之发红包
查看>>
一键lnmp脚本&&php扩展模块安装(适用于CENTOS6.X系列)
查看>>
二维观察---文字的裁剪
查看>>
矩形覆盖
查看>>
ICMP
查看>>
界面设计模式(第2版)(全彩)
查看>>
解决VMware Workstation错误:未能锁定文件
查看>>
CentOS6 手动编译升级 gcc
查看>>
memcached的安装与开启脚本
查看>>