实体类

Struts2 Day02

試著忘記壹切 提交于 2019-12-28 05:45:06
本节内容: 1.结果页面配置 2.在Action获取表单提交数据 3.Struts2提供获取表单数据的方式 4.Struts2获取数据封装到集合 5.扩展-表达式封装和模型驱动比较 一、结果页面配置 1.全局结果页面 在struts.xml中我们的package标签中有一个标签叫做<global-results> 全局结果集 <package name="login" namespace="/" extends="struts-default" > <!--全局结果页面只能在一个package中有效 package中的所有的action都有作用--> <global-results> <result name="success">/index.jsp</result> </global-results> </package> 2.局部结果页面 <package name="login" namespace="/" extends="struts-default" > <!--全局结果页面只能在一个package中有效 package中的所有的action都有作用--> <global-results> <result name="success">/index.jsp</result> </global-results> <action name="userLogin" class

记录自己做项目时踩过的坑及解决办法

倖福魔咒の 提交于 2019-12-28 01:20:40
记录自己做项目时踩过的坑及解决办法 1.request存储的信息重定向response不能携带数据,应该使用更大的域对象session存储数据 2.maven中央仓库的下载和存放路径没完成 3.jsp可以从四大域对象中拿取储存的信息,用html做的页面不能获取域对象,用Ajax完成表单提交 4.查询数据库为空不会返回空,直接报异常,所以daoc层查询要把catch异常处理改为空 5.字符串类型!=null, 和 !“null”.equals(字符串)中 的null不是一回事,前者为类型空,后者则是字符串null 6.在黑马旅游网中,神奇发生模糊查询返回的json数据无法在浏览器上显示,但抓包能得到正常的json数据,数据与分类查询的数据是一样的 7.接上一条,由于判断的大括号放错位置,直接跳出来了,所以无法展示.(会用抓包工具后解决的,一条一条的执行看出了问题) 8.mybatis问题,在jdbc的配置文件中,映射文件目录结构使用斜杠"/",而不是英文句号"." 9.在spring中,导入的各种核心版本不一致会报异常Caused by: java.lang.ClassNotFoundException: org.springframework.core.ErrorCoded 10.c3p0.druid是连接池. DBUtils.JdbcTemplete是对连接池的简单封装

Protobuf简介

爷,独闯天下 提交于 2019-12-27 09:21:57
简明扼要的说,protobuf是一种对结构化数据的序列化格式(形如JSON、XML),用于在数据通信、数据存储之中。protobuf是由Google设计开发,与开发平台及开发语言均无关。其特点在于灵活高效,序列化后的数据简单、轻便,序列化/反序列化过程耗时更短。 在使用Protobuf时,需要将待序列化的结构类型在“.proto“文件中进行标注声明。一个protocol buffer消息,包含有若干个key-value对。在一个消息内,每一个字段都包含有它的名字和它的数据类型。数据类型可以是数字、布尔型、字符串、比特串,甚至是其他的protocol buffer消息类型。对声明的消息字段,可以特别的声明该字段是可选字段(optional)还是必填字段(required)还是可重复字段(repeated)。以下是一个.proto文件的样例: message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [

JavaEE--JavaWeb三大组件Servlet、Filter、Listener

浪尽此生 提交于 2019-12-27 05:34:33
   Servlet、Filter、Listener是JavaEE Web服务规定的服务器动态组件,由开发者编写由Web容器创建,并保证单例以及线程安全性,其中加载顺序为Linstener -> Fliter -> Servlet,与它们在web.xml中配置的顺序没有关系,<xx-mapping>的配置顺序会影响到url在某一类组件的过滤顺序。 一、 Servlet   Servlet是用来处理客户端请求的动态资源,也就是当我们在浏览器中键入一个地址回车跳转后,请求就会被发送到对应的Servlet上进行处理。它是一个 POJO类 ,在web容器的管理下实现对web请求的处理与分发。 1. Servlet的任务 ① 接收请求数据:我们都知道客户端请求会被封装成HttpServletRequest对象,里面包含了请求头、参数等各种信息。 ②处理请求:通常我们会在service、doPost或者doGet方法进行接收参数,并且调用业务层(service)的方法来处理请求。 ③完成响应:处理完请求后,我们一般会转发(forward)或者重定向(redirect)到某个页面,转发是HttpServletRequest中的方法,重定向是HttpServletResponse中的方法,两者是有很大区别的。 2.Servlet的特性   Servlet可以在第一次接收请求

mybatis中resultMap配置细则

人走茶凉 提交于 2019-12-26 02:39:28
resultMap算是mybatis映射器中最复杂的一个节点了,能够配置的属性较多,我们在 mybatis映射器配置细则 这篇博客中已经简单介绍过resultMap的配置了,当时我们介绍了resultMap中的id和result节点,那么在resultMap中除了这两个之外,还有其他节点,今天我们就来详细说说resultMap中的这些节点。 如果小伙伴对mybatis尚不了解,建议先翻看博主前面几篇博客了解一下,否则本文你可能难以理解,老司机请略过。 概览 先来看看resultMap中都有那些属性: <resultMap> <constructor> <idArg/> <arg/> </constructor> <id/> <result/> <association property=""/> <collection property=""/> <discriminator javaType=""> <case value=""></case> </discriminator> </resultMap> 我们看到,resultMap中一共有六种不同的节点,除了id和result我们在 mybatis映射器配置细则 这篇博客中已经介绍过了之外,还剩三种,剩下的四个本文我们就来一个一个看一下。 constructor constructor主要是用来配置构造方法

asp.net abp模块化开发之通用树2:设计思路及源码解析

断了今生、忘了曾经 提交于 2019-12-25 22:09:29
一、前言 上一篇大概说了下abp通用树形模块如何使用,本篇主要分析下设计思路。 日常开发中会用到很多树状结构的数据,比如:产品的多级分类、省市区县,大多数系统也会用到类似“通用字典/数据字典”的功能,为系统各个地方提下拉框选择的数据源。abp提供了一个模块化系统,只要按它的约定就可以实现一个通用的树形数据的模块,这样公司的多个系统都可以使用,也可以用类似nuget的方式提供给别人使用。 先列举下它的功能 通过nuget方便安装和升级 配置简单 默认已经提供“通用字典”功能 实体、管理器、应用服务都是抽象类,结合泛型 狠容易扩展实现自己的树形结构 二、必备知识 这不是abp入门级的文章,是探讨系统模块化开发的一种思路。所以要求对abp有经验,完整看过abp文档,对涉及到的模块、依赖注入、启动配置、权限、菜单、本地化等等概念有清晰的认识 三、包和源码 源码地址: https://github.com/bxjg1987/abpGeneralModules nuget:Install-Package BXJG.GeneralTree -Version 1.0.2 在线地址: http://test.cqsifang.com/ 账号密码:admin zlj.com (别胡来,拜托...) 源码仓库中还有通用的文件模块、附件模块,后期会讲讲;nuget搜索bxjg可以找到这几个相关的包 四

MongoRepository

陌路散爱 提交于 2019-12-25 19:59:33
ava操作MongoDB采用MongoRepository仓库进行条件查询 1.实体类: public class Person implements Serializable{ private static final long serialVersionUID = -8288372263395673353L; private String id; private String name; private int age; // set/get ... } 2.仓库: 如果只是用简单的CRUD操作,则不需要添加其他的方法,MongoRepository提供的方法足够我们使用。 public interface PersonRepository extends MongoRepository<Person, String>{ } 3.利用MongoRepository中的查询进行操作 首先,在service层中,将PersonRepository注入到service类中 public class PersonServiceImpl implements IPersonService{ @Autowired private PersonRepository personRepository; } 1)查询所有的数据: public List<Person> queryAll()

Spring学习一(依赖注入/Bean/注解等)

…衆ロ難τιáo~ 提交于 2019-12-25 16:01:42
1.Spring依赖注入的方式。 2.依赖注入的类型 3.Bean的作用域 4.自动注入 5.使用注解的方式 6.在spring配置文件中引入属性文件 1.Spring依赖注入的方式    平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理。   spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”。   通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。   Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方 法注入,set方法参数注入,接口注入,这里我们先运用 构造方法注入,set方法参数注入 。 1.1通过set方法完成依赖注入 建好实体类Hello并生成set方法 private String name; private Integer age; 在配置文件中写入代码以完成set方法依赖注入 <bean id="he" class="com.zhiyou100.spring.Hello"> <property name=

java中的几种实体类对象(PO,VO,DAO,BO,POJO)

て烟熏妆下的殇ゞ 提交于 2019-12-25 13:09:28
一、PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。 二、VO :(value object) ,值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要. PO只能用在数据层,VO用在商务逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。 三、DAO :(Data Access Objects) ,数据访问对象接口 DAO是Data Access Object数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。 J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的商务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码. DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件: 一个DAO工厂类; 一个DAO接口; 一个实现DAO接口的具体类; 数据传递对象(有些时候叫做值对象). 具体的DAO类包含了从特定的数据源访问数据的逻辑。 四、BO :(Business Object),业务对象层 表示应用程序领域内

JDBC及DAO模式的使用

狂风中的少年 提交于 2019-12-25 04:46:13
JDBC(全称:Java Data Base Connectivity)是java数据库连接简称 ,提供连接各种数据库的能力 JDBC API主要的功能: 1.与数据库建立连接 2.执行SQL语句 3.处理结果 JDBC关键字的使用: 1.DriverManager:依据数据库的不同,管理JDBC驱动 2.Connection:负责连接数据库并且担任传送数据库的任务 3.Statement:由Connection产生、负责执行SQL语句 4.ResultSet:负责保存Statement执行后所产生的查询结果 5.PreparedStatement接口(预编译的SQL语句)提高了SQL语句的性能、代码的安全性、代码的可读性和可维护性 Statement常用方法: ResultSet executeQuery(String sql):执行SQL查询并且获取ResultSet对象 Int executeUpdate(String sql):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数 Boolean execute(String sql):可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet Boolean next():将光标从当前位置向下移动一行 Boolean previous():游标从当前位置向上移动一行 Void close()