衍生星球
分享每一次学习,记录每一次成长,希望和大家一起进步。
展开
-
【Spring】— Spring MVC复杂数据绑定
针对这种情况,可以使用集合数据绑定,即在包装类中定义一个包含对象类的集合,然后在接收方法中将参数类型定义为该包装类的集合。在上述代码的两个方法中,通过toUserEdit()方法将跳转到user_edit.jsp页面,通过editUsers()方法将执行用户批量更新操作,其中该方法的UserVo类型参数用于绑定并获取页面传递过来的用户数据。实际项目开发中,除了简单数据类型外,还会经常遇到一些比较复杂的数据绑定问题,比如数组的绑定、集合的绑定,接下来将具体讲解一下数组绑定和集合绑定的使用。原创 2023-06-28 14:32:01 · 760 阅读 · 0 评论 -
【Spring】— Spring MVC简单数据绑定(二)
要使用编码过滤器,只需要在web.xml中添加如下代码。在使用简单数据类型绑定时,可以很容易地根据具体需求来定义方法中的形参类型和个数,然而在实际应用中,客户端请求可能会传递多个不同类型的参数数据,如果还使用简单数据类型进行绑定,就需要手动编写多个不同类型的参数,这种操作显然比较烦琐。在使用POJO类型数据绑定时,前端请求的参数名(本例中指form表单内各元素的name属性值)必须与要绑定的POJO类中的属性名一样,这样才会自动将请求数据绑定到POJO对象中,否则后台接收的参数值为null。原创 2023-06-25 11:55:21 · 849 阅读 · 0 评论 -
【Spring】— Spring MVC简单数据绑定(一)
在执行程序时,Spring MVC根据客户端请求参数的不同将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中。这种将请求消息数据与后台方法参数建立连接的过程就是Spring MVC中的数据绑定。在数据绑定过程中,Spring MVC框架会通过数据绑定组件(DataBinder)将请求参数串的内容进行类型转换,然后将转换后的值赋给控制器类中方法的形参,这样后台方法就可以正确绑定并获取客户端请求携带的参数。具体的信息处理过程的步骤如下。原创 2023-06-23 17:32:57 · 1186 阅读 · 0 评论 -
【Spring】— 应用案例——基于注解的Spring MVC应用
由于标注在类上的@RequestMapping注解的value值为“/controll”,因此类中所有请求方法的路径都需要加上“/controll”。因为在配置文件的视图解析器中定义了视图文件的前缀和后缀名,所以handleRequest()方法只需返回视图名“welcome”即可,在访问此方法时,系统会自动访问“WEB(-?首先通过组件扫描器指定了需要扫描的包,然后定义了视图解析器,并在视图解析器中设置了视图文件的路径前缀和文件后缀名。修改ControllerTest类,在类和方法上添加相应注解。原创 2023-06-20 14:57:07 · 454 阅读 · 0 评论 -
【Spring】— MyBatis与Spring的整合
在MyBatis+Spring的项目中,虽然使用传统的DAO开发方式可以实现所需功能,但是采用这种方式在实现类中会出现大量的重复代码,在方法中也需要指定映射文件中执行语句的id,并且不能保证编写时id的正确性(运行时才能知道)。执行上述方法后,控制台的输出结果如图所示。Spring框架所需要准备的JAR包共10个,其中包括4个核心模块JAR、AOP开发使用的JAR、JDBC和事务的JAR(其中核心容器依赖的commons-logging的JAR在MyBatis框架的lib包中已经包含)。原创 2023-06-15 17:32:07 · 1399 阅读 · 0 评论 -
【Spring】— 动态SQL :MyBatis的关联映射
在关系型数据库中,多表之间存在3种关联关系,分别为一对一、一对多和多对多。一对一:在任意一方引入对方主键作为外键。一对多:在“多”的一方添加“一”的一方的主键作为外键。多对多:产生中间关系表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。原创 2023-06-12 23:13:03 · 662 阅读 · 0 评论 -
【Spring】— 动态SQL :<foreach>元素、<bind>元素
这样,映射文件中的SQL就要根据不同的情况提供不同形式的实现,显然是比较麻烦的,且不利于项目的移植。当使用可迭代对象或者数组时,index是当前迭代的次数,item的值是本次迭代获取的元素。原创 2023-06-06 11:49:27 · 976 阅读 · 0 评论 -
【Spring】— 动态SQL :<set>元素
在Hibernate中,如果想要更新某一个对象,就需要发送所有的字段给持久化对象,然而实际应用中会存在只需要更新某一个或几个字段。为了让程序只更新需要更新的字段,MyBatis提供了元素来完成这一工作。元素主要用于更新操作,主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除。【示例】以更新操作为例,原创 2023-06-05 17:13:12 · 751 阅读 · 0 评论 -
【Spring】— 动态SQL :<where>、<trim>元素
、元素原创 2023-06-05 16:58:58 · 576 阅读 · 1 评论 -
【Spring】— 动态SQL :<choose>、<when>和<otherwise>元素
在使用if元素时,只要test属性中的表达式为true,就会执行元素中的条件语句,但是在实际应用中,有时只需要从多个选项中选择一个执行。原创 2023-06-02 17:43:59 · 832 阅读 · 0 评论 -
【Spring】— 动态SQL :<if>元素
元素的test属性分别对username和jobs进行了非空判断(test属性多用于条件判断语句中,用于判断真假,大部分的场景中都是进行非空判断的,有时也需要判断字符串、数字和枚举等),如果传入的查询条件非空,就进行动态SQL组装。原创 2023-05-30 23:57:52 · 836 阅读 · 2 评论 -
【Spring】— 映射文件
在一个映射文件中,通常需要定义多条SQL语句,这些SQL语句的组成可能有一部分是相同的(如多条select语句中都查询相同的id、username、jobs字段),如果每一个SQL语句都重写一遍相同的部分,势必会增加代码量,导致映射文件过于臃肿。元素会首先运行,它会通过自定义的语句来设置数据表中的主键(如果t_uesr表中没有记录,就将id设置为1,否则将id的最大值加1作为新的主键),然后调用插入语句。在上述代码中,使用元素的refid属性引用了自定义的代码片段,refid属性值为自定义代码片段的id。原创 2023-05-29 11:45:38 · 749 阅读 · 0 评论 -
【Spring】— MyBatis配置文件元素
元素的子元素中的type属性用于指定需要被定义别名的类的全限定名;在上述代码中,子元素的name属性用于指定类型处理器所在的包名,使用这种方式后,系统会在启动时自动扫描com.ssm.type包下所有的文件,并把它们作为类型处理器。中的name属性用于指定要被定义别名的包,MyBatis会将所有com.ssm.po包中的POJO类以首字母小写的非限定类名作为它的别名。使用MyBatis框架进行开发,需要创建MyBatis的核心配置文件,该配置文件包含重要的元素,熟悉配置文件中各个元素的功能十分重要。原创 2023-05-23 16:37:58 · 2148 阅读 · 1 评论 -
【Spring】— MyBatis的核心对象
SqlSession实例是不能被共享的,也是线程不安全的,因此其使用范围最好限定在一次请求或一个方法中,绝不能将其放在一个类的静态字段、实例字段或任何类型的管理范围中使用。元素的id,parameter是查询所需的参数,rowBounds是用于分页的参数对象。元素的id,parameter是查询所需的参数,ResultHandler对象用于处理查询返回的复杂结果集,通常用于多表查询。元素的id,parameter是查询所需的参数。元素的id,parameter是查询所需的参数。原创 2023-05-13 20:11:06 · 655 阅读 · 0 评论 -
【Spring】— 初识MyBatis (二)
模糊查询的实现只需要在映射文件中通过元素编写相应的SQL语句,并通过SqlSession的查询方法执行该SQL语句即可。原创 2023-05-11 23:00:02 · 420 阅读 · 0 评论 -
【Spring】— 初识MyBatis (一)
MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。MyBatis框架也被称为ORM(Object/ Relational Mapping,对象关系映射)框架。原创 2023-05-08 18:06:46 · 554 阅读 · 0 评论 -
【Spring】— Spring的数据库开发
与addUserTest()方法相比,更新操作的代码增加了id属性值的设置,并在将用户名和密码修改后调用了UserDao对象中的updateUser()方法执行对数据表的更新操作。使用JUnit4运行方法后,再次查询数据库中的user表,其结果如图所示。定义jdbcTemplate时,需要将dataSource注入jdbcTemplate中,而其他需要使用jdbcTemplate的Bean,也需要将jdbcTemplate注入该Bean中(通常注入Dao类中,在Dao类中进行与数据库的相关操作)。原创 2023-04-23 15:52:39 · 749 阅读 · 1 评论 -
【Spring】— Spring AOP
AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程),是面向对象编程(OOP)的一种补充,目前已成为一种比较成熟的编程方式。在传统的业务处理代码中,通常都会进行事务处理、日志记录等操作。虽然使用OOP可以通过组合或者继承的方式来达到代码的重用,但如果要实现某个功能(如日志记录),相同的代码仍然会分散到各个方法中。这样,如果想要关闭某个功能,或者对其进行修改,就必须修改所有相关方法。这不但增加了开发人员的工作量,而且提高了代码的出错率。原创 2023-04-20 15:13:06 · 781 阅读 · 0 评论 -
【Spring】— Spring中Bean的装配方式
在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter()方法来注入属性值。在Spring中,尽管使用XML配置文件可以实现Bean的装配工作,但如果应用中有很多Bean,就会导致XML配置文件过于臃肿,给以后的维护和升级工作带来一定的困难。虽然使用注解的方式装配Bean在一定程度上减少了配置文件中的代码量,但是也有企业项目中是没有使用注解方式开发的,那么有没有什么办法既可以减少代码量,又能够实现Bean的装配呢?原创 2023-04-14 17:21:28 · 906 阅读 · 0 评论 -
【Spring】— Spring中Bean的配置、作用域
singleton是Spring容器默认的作用域,当Bean的作用域为singleton时,Spring容器就只会存在一个共享的Bean实例,并且所有对Bean的请求,只要id与该Bean的id属性相匹配,就会返回同一个Bean的实例。在Spring中,XML配置文件的根元素是beans,beans中可以包含多个bean子元素,每一个bean子元素定义了一个Bean,并描述了该Bean如何被装配到Spring容器中。从中可以看出,两次输出的结果相同,这说明Spring容器只创建了一个Scope类的实例。原创 2023-04-13 22:07:38 · 906 阅读 · 0 评论 -
【Spring】— Spring基础学习
Spring是一个以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming)为内核的框架。IoC是Spring的基础。IoC实现的是一种控制,简单地说,就是以前调用new构造方法来创建对象,现在变成了使用Spring来创建对象。DI(Dependency Inject,依赖注入)与IoC的含义相同,从两个角度描述同一个概念。简单地说,DI就是对象的属性,已经被注入好相关值,直接使用即可。原创 2023-04-12 17:44:26 · 748 阅读 · 0 评论