基于注解的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.jarstruts2-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.jarcommons-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{@Autowiredprivate 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{@Autowiredprivate UserDao userDao;@Transactionalpublic void saveUser(User user){this.userDao.save(user);}@Transactionalpublic void updateUser(User user){this.userDao.update(user);}@Transactionalpublic 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;}@Autowiredprivate 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>
    

作者: 杨校

出处: https://blog.csdn.net/kese7952

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

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

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

  1. JavaEE框架整合之基于注解的SSH整合

    基于注解的SSH整合 开发环节步骤: 实体类 -----> DAO开发 -----> Service开发 -----> Action动作类开发 -----> 配置文件(appl ...

  2. 杨老师课堂之网页制作HTML的学习入门-含有案例

    网页制作入门 - Html的学习 本篇所授任务 网站信息页面案例 网站图片信息页面案例 网站友情链接页面案例 网站首页案例 网站注册页面案例 网站后台页面案例 教学导航 教学目标 了解什么是标记语言 ...

  3. 台州杨老师课堂 UI设计培训班

    课程内容 一.图形界面设计基础 1.Photoshop 应用 通过各种不同风格网页整体GUI设计,掌握photoshop相关软件操作基础,熟练使用更重要是学会直接应用软件,通过项目实训直接设计. 2. ...

  4. 基于SpringBoot的SSM整合案例 -- SpringBoot快速入门保姆级教程(四)

    文章目录 前言 1.设计创建数据库表tbl_book 2.创建新的SpringBoot模块,勾选相关依赖 3. 添加SpringBoot创建项目时没有提供的相关坐标 4.根据数据库表创建实体类Book ...

  5. 杨老师课堂之JavaWeb网站技术架构总结

    题记 有很多学生及一线的开发人员经常会问我到底是什么技术架构,是不是就是目前在学校的SSH.SSM技术,为了让更多的同行对架构这个词汇有更深刻的理解,我分享一下自己的个人见解.从编程开发到IT教学也有 ...

  6. 杨校老师课堂之集群内SSH免密登录功能配置

    SSH免密登录功能配置 1. 在主节点虚拟机内进行如下操作: [root@hadoop1 tmp]# ssh-keygen -t rsaGenerating public/private rsa ke ...

  7. 杨校老师课堂之基于SpringBoot + Vue 的智能停车场平台设计

    1. 获取代码: 自助获取:https://download.csdn.net/download/kese7952/84988573 点我去下载 2. 技术栈 后端 SpringBoot + Spri ...

  8. 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例

    背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...

  9. 杨老师课堂_Java核心技术下之控制台模拟记事本案例...

    预览效果图: 背景介绍: 编写一个模拟记事本的程序通过在控制台输入指令,实现在本地新建文件打开文件和修改文件等功能. 要求在程序中: 用户输入指令1代表"新建文件",此时可以从控制 ...

  10. 杨老师课堂之JavaScript定时器限时抢购秒杀商品案例

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kese7952/article/details/80346509 预览效果图: 使用到的知识点: 定 ...

最新文章

  1. Java中关于枚举的7种用法
  2. 静态方法里面不能调用非静态属性
  3. 融资2.5亿的国产浏览器,被曝只是打包chrome
  4. feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)
  5. extract($_POST[])
  6. nginx反向代理/负载均衡MySQL
  7. quartz mysql数据源_Spring之——quartz集群(MySQL数据源)
  8. 【全家福】多项式的各种板子
  9. Spring AOP之XML配置
  10. 一个段子教你如何认识大数据
  11. matlab多久可以入门,5分钟入门matlab
  12. Java - ip2region - 使用篇
  13. 网络安全中白帽、黑帽、红帽黑客的含义
  14. 英语四级和计算机一级算多少学分,大学英语四级多少分算过
  15. 2022年全新PHP程序开发在线工单管理系统源码,售后工单系统
  16. (CVE-2014-0160) OpenSSL 心脏滴血漏洞
  17. mount挂载硬盘出错 linux 下分区格式为lvm
  18. kubeadm快速部署一套K8S集群
  19. LTspice基础教程-010.波形查看器的使用
  20. javaScript和html的区别与联系

热门文章

  1. Anaconda安装教程
  2. 爬取智联招聘岗位描述并根据描述生成词云
  3. 【朝花夕拾】Lint使用篇
  4. Unity开发OpenXR | (一)OpenXR是什么?一文带你全面了解OpenXR的相关知识,上车收藏不迷路
  5. 双动道岔计算机控制系统,车站信号自动控制习题.doc
  6. Android之远程查看异常崩溃信息——腾讯Bugly的自动集成
  7. elasticsearch,spring boot,mybatis项目小结
  8. 专业课复习资料:空间分析
  9. 3. 项目立项三板斧-建议书-可行性研究-评估论证
  10. 解决H5 在安卓手机上软键盘遮盖input的问题