当前位置: 首页 > news >正文

二道江网站建设扬中网站网站建设

二道江网站建设,扬中网站网站建设,wordpress4.7.8,辽宁省建设工程信息网官网新网站入口参考资料 Java 基础 - 泛型机制详解路人甲-Java泛型专题 目录一. 通用Mapper1.1 实体类1.2 Mapper基类1.3 自定义接口1.4 抽象基类Service1.5 调用二. session和bean的获取一. 通用Mapper 1.1 实体类 ⏹ Accessors(chain true): 允许链式调用 import lombok.Data; import …参考资料 Java 基础 - 泛型机制详解路人甲-Java泛型专题 目录一. 通用Mapper1.1 实体类1.2 Mapper基类1.3 自定义接口1.4 抽象基类Service1.5 调用二. session和bean的获取一. 通用Mapper 1.1 实体类 ⏹ Accessors(chain true): 允许链式调用 import lombok.Data; import lombok.experimental.Accessors;import java.math.BigDecimal;Data Accessors(chain true) public class TagEntity {private BigDecimal id;private String name; }1.2 Mapper基类 ⏹ 该接口中定义了共通的增删改查方法 因为要保证基类的通用性使用泛型可以保证能使用任何类型的实体类 import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.math.BigDecimal;public interface BaseMapperT {/*** 返回表中的数据量* * param tableName 表名* return 总数量*/Select( select count(*) from ${tableName} )BigDecimal getCount(Param(tableName) String tableName);/*** 插入数据* * param entity entity* return int 更新件数*/int insert(T entity);/*** 更新数据* * param entity entity* return int 更新件数*/int updateByPrimaryKey(T entity);/*** 删除数据* * param entity entity* return int 删除件数*/int deleteByPrimaryKey(T entity); }1.3 自定义接口 ⏹ 自定义接口继承基类Mapper TagGenericMapper接口继承了BaseMapper接口,也就有了其所有的方法 public interface TagGenericMapper extends BaseMapperTagEntity {// 定义独有的,非共通的方法 }⏹ xml中的insert方法对应着基类Mapper中的insert接口 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.jmw.mapper.TagGenericMapper!-- 插入数据 --insert idinsert parameterTypejava.util.MapINSERT INTOt_tag(id, name)VALUES (#{id}, #{name})/insert!-- 更新数据 --!-- 删除数据 --!-- 查询数据 -- /mapper1.4 抽象基类Service import org.springframework.beans.factory.annotation.Autowired;public abstract class BaseServiceAbstractT {// ❗❗❗共通的基类Mapper,此处一定不能使用java的Resource来注入,否则失败Autowiredprotected BaseMapperT baseMapper;// 插入int insert(T entity) {int count 0;try {count baseMapper.insert(entity);} catch (Exception ex) {// 模拟打印logSystem.out.println(程序异常,异常的原因是: ex.getMessage());}return count;}// 更新int update(T entity) {int count 0;try {count baseMapper.updateByPrimaryKey(entity);} catch (Exception ex) {// 模拟打印logSystem.out.println(程序异常,异常的原因是: ex.getMessage());}return count;}// 删除int delete(T entity) {int count 0;try {count baseMapper.deleteByPrimaryKey(entity);} catch (Exception ex) {// 模拟打印logSystem.out.println(程序异常,异常的原因是: ex.getMessage());}return count;} }1.5 调用 import org.springframework.stereotype.Service; import org.springframework.boot.CommandLineRunner; import javax.annotation.Resource; import java.math.BigDecimal;Service public class TagService extends BaseServiceAbstractTagEntity implements CommandLineRunner {Resourceprivate TagGenericMapper mapper;Overridepublic void run(String... args) throws Exception {this.init();}public void init() {// 查询指定表中的数据数量BigDecimal count mapper.getCount(t_tag);System.out.println(count); // 5// 准备要插入数据TagEntity tagEntity new TagEntity();tagEntity.setId(BigDecimal.ONE).setName(乌班图);// 通过抽象类中的方法向Tag表中插入数据int result this.insert(tagEntity);System.out.println(result); // 1} }⏹ 流程示意图 二. session和bean的获取 ⏹ 定义一个基类Controller使用泛型将IOC容器和session中获取到的数据转换为对应的实体类 import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.util.ObjectUtils;import javax.servlet.http.HttpSession;public abstract class BaseControllerAbstract implements ApplicationContextAware {private static ApplicationContext applicationContext;// 注入session对象Autowiredprivate HttpSession session;Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {BaseControllerAbstract.applicationContext applicationContext;}// 根据名称获取beanSuppressWarnings(unchecked)protected T T getBean(String name) throws BeansException {// 直接将Bean转换为对应的类型return (T) applicationContext.getBean(name);}// 根据class获取beanprotected T T getBean(ClassT clazz) throws BeansException {return applicationContext.getBean(clazz);}// 设置sessionprotected void setSession(Object data) {session.setAttribute(data.getClass().getSimpleName(), data);}// 获取sessionSuppressWarnings(unchecked)protected T T getSession(Class ? clazz) {Object sessionINfo session.getAttribute(clazz.getSimpleName());if (ObjectUtils.isEmpty(sessionINfo)) {return null;}// 从session中获取到的数据是一个Object类型的数据,使用泛型将其转换为指定的类型return (T) sessionINfo;} }⏹因为使用了泛型所以获取IOC容器中的Bean和session中数据的时候无需进行类型转换 import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;import java.math.BigDecimal;Controller RequestMapping(/ztest) public class ZTestController extends BaseControllerAbstract {GetMapping(/init)public ModelAndView init() {// 向session中放入数据TagEntity tagEntity new TagEntity();tagEntity.setId(BigDecimal.ONE).setName(tag);this.setSession(tagEntity);ModelAndView modelAndView new ModelAndView();modelAndView.setViewName(ZTest);return modelAndView;}PostMapping(/test)public ResponseEntityVoid test() throws Exception {// 获取Bean对象TagService tag1 this.getBean(tagService);System.out.println(tag1);TagService tag2 this.getBean(TagService.class);System.out.println(tag2);// 从session中获取entity数据TagEntity sessionEntity this.getSession(TagEntity.class);System.out.println(sessionEntity);return ResponseEntity.noContent().build();} }
http://www.dnsts.com.cn/news/116105.html

相关文章:

  • 做苗木网站哪家好ps做网站logo尺寸
  • 做app必须有网站网站建设项目组织结构图
  • 百度自然排名网站的logo怎么做怎么才能建立自己的网站啊
  • 网站推广方法及特点网站二级目录建站
  • 网站运营与推广wordpress新建页面源码
  • 建站软件免费模板手机网站支持微信支付吗
  • 电子加工东莞网站建设人与马做网站
  • 天津百度推广优化排名南昌网站排名优化
  • 用jsp进行网站开发软件平台架构
  • 网站被降权后怎么办wordpress音乐批量上传
  • 网站制作模板百度网盘分类信息网站建设方案
  • 58同城网站建设目的自己做网站 需要哪些
  • 网站和新媒体建设管理办法牌具做网站可以吗
  • 自贡建设局网站wordpress 上传 主题
  • 网站制作千知寻展会展厅设计公司
  • 婚庆网站设计说明书wordpress 数据库
  • 丽水开发区建设局网站廉租房百度seo快速见效方法
  • 门户网站建设计划官网建设费用怎么算
  • 怎么申请建立个人免费网站购物网站模板代码下载
  • 石家庄市城乡和建设局网站网站排版尺寸
  • 顺德做外贸网站网页游戏大全slg
  • 网站的题目app制作团队
  • 网站注册信息查询沈阳犀牛云做网站怎么样
  • 做网站头视频asp.net建立手机网站
  • 焦作网站建设哪家专业2018年做淘宝客网站还能挣钱吗6
  • h5手机网站建设怎么选择营销型网站建设公司
  • 网站换新的空间域名解析怎么做泰安网红瑶瑶
  • 商城网站模板免费好用的网站开发软件
  • 建站策划设计公司手机网站源码下载
  • 怎么做一个网站送给女朋友软装设计的意义