ssm
文章平均质量分 60
_小尘
此人很憨,什么都没有做好!!!
展开
-
ssm:mybatis中最实用的一个功能(逆向工程)
1.简介在mybatis的项目中,最繁琐的就是制作映射文件,还有一个就是要为数据库中数据表手动做一个实体类。有一个简便方法就是让mybatis根据数据库连接自动生成映射文件和实体类,这就是mybatis逆向工程。2.应用场景通常逆向工程单独作为一个项目,把所需的映射文件和实体类自动生成后再复制到项目中,而且自动生成的映射文件往往还需要再根据真实的项目需求进行修改。3.博主的个人理解通俗的理解就是通过mybatis配置文件来自动生成数据库中数据表对应的实体类和配置文件。试想一下,若某一个数据表中的原创 2021-01-23 22:54:17 · 460 阅读 · 0 评论 -
ssm:spring mvc关键技术-----请求转发(forward)和重定向(redirect)
涉及知识点:请求转发与重定向的区别请求转发可以保留传输过来的数据,而重定向无法保留传输过来的数据1.请求转发与重定向简介当控制器完成请求处理后向其他资源跳转时,有两种跳转方式:请求转发与重定向。根据跳转的资源类型,可将跳转分为两类:跳转到页面与跳转到其他控制器。请求转发的页面可以是WEB-INF中的页面,但重定向的页面不能是WEB-INF中的页面,因为重定向相当于重新发出一次请求,而用户是不可以直接访问WEB-INF中的资源的。2.请求转发到其他页面当控制器返回ModelAndView时,跳转到指原创 2021-01-11 14:25:46 · 1928 阅读 · 1 评论 -
ssm:服务端到客户端的参数传递-----Ajax技术在spring mvc中的应用(控制器方法返回void类型和Object类型)
涉及知识点:jquery方式实现Ajax若控制器处理请求后,无须跳转到其他任何资源,则可以让控制器方法返回void类型。例如:对于Ajax的异步请求的响应,其请求完成后往往还停留在原来的页面,无须跳转,可以让控制器方法返回void类型。1.使用Ajax技术的前提i.导入JSON的相关jar包控制器方法返回void类型,本项目中服务器向浏览器传回的是JSON对象格式,故需要导入JSON的JAR包。ii.导入Jackson的相关jar包控制器方法返回Object对象,需要使用@ResponseBo原创 2021-01-10 18:13:56 · 219 阅读 · 0 评论 -
ssm:服务端到客户端的参数传递-----控制器返回String类型
1.控制器传递数据的返回值类型使用@Controller注解的控制器下面的方法,其返回值有以下4种类型:ModelAndView,String,无返回值void,返回自定义类型对象。2.返回值类型的选择i.若控制器方法处理完后,需要跳转到其他资源,同时又要往跳转资源传递数据,此时控制器返回ModelAndView比较合适。这种情况下在控制器方法里面定义一个ModelAndView对象,并调用ModelAndView对象的addObject()方法添加Model数据,用于传递到目标View页面,调用se原创 2021-01-10 10:08:38 · 708 阅读 · 1 评论 -
ssm:客户端到控制器的参数传递-----实体Bean作为形式参数
相关实例:基本类型作为形式参数1.实体Bean作为形式参数(通俗理解就是实体类作为形式参数)前提是这个实体类的各个属性要与表单的各个name属性相同相关代码表单属性 姓名:<input type="text" name="name" /><br> 密码:<input type="password" name="password" /><br> 国家:<input type="text" name="address.country原创 2021-01-09 22:00:07 · 365 阅读 · 0 评论 -
ssm:客户端到控制器的参数传递-----基本类型作为形式参数
1.基本类型作为形式参数以下示例,其表单name属性与方法的参数名称一致。若其表单name属性与方法的参数名称不一致,就需要用到注解@RequestParam()方法校正参数名。例:@RequestMapping("/dologin.do")public ModelAndView doLogin(@RequestParam("uname")String name, @RequestParam("upwd")String password){}上面代码,方法的形参与表单的name属性明显不一样,但原创 2021-01-09 10:26:03 · 1011 阅读 · 2 评论 -
ssm:详解第一个spring mvc注解式项目的3个关键步骤
涉及知识点:第一个spring mvc注解式项目1.核心控制器DispatcherServlet的配置的关键代码若spring mvc找不到配置文件web.xml项目就会报错在web.xml文件加入以下代码 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServle原创 2021-01-08 11:47:36 · 89 阅读 · 0 评论 -
ssm:第一个spring mvc 注解式项目
博主的第一个spring mvc项目是基于配置式的开发,有助于我们理解spring mvc的基本原理与流程,spring mvc还提供了注解式的开发流程,实际开发中常使用注解式开发程序。相关实例:第一个sprin mvc项目1.spring mvc-----配置式开发的关键代码<!-- 1.配置处理映射器,确定一种请求~响应的映射规则 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandle原创 2021-01-08 09:45:54 · 114 阅读 · 2 评论 -
ssm:spring mvc理论知识
应用示例:第一个spring mvc项目spring mvc是一种基于mvc设计模式的请求-响应模型的轻量级web框架。1.spring mvc的优点a.角色划分清晰:核心控制器,处理器映射器,处理器适配器,视图解析器,控制器,验证器,命令对象,表单对象。b.分工明确,扩展灵活。作为spring的一部分,易与spring其他框架集成。c.适配性好,通过处理器适配器就可以支持任意一个类作为处理器。d.支持数据验证,数据格式化,数据绑定机制。e.提供功能强大的jsp标签库,使数据在视图中展示或者获原创 2021-01-07 15:13:53 · 158 阅读 · 0 评论 -
ssm:spring事务管理-----通过注解实现事务管理
涉及知识点:没有事务管理的情况分析1.对上一个没有事务管理的项目进行优化目标是把类AlipayDaoImpl里的整个transfer()方法作为事务管理,这样transfer()里的所有操作都纳入同一个事务,从而使transfer()里的所有操作要么一起成功,要么一起失败。2.优化流程i.在applicationContext.xml中配置事务注解驱动<!-- 开启事务注解驱动 --><tx:annotation-driven transaction-manager="txMa原创 2021-01-07 13:30:41 · 294 阅读 · 0 评论 -
ssm:spring事务管理-----通过配置XML实现事务管理
涉及知识点:没有事务管理的情况分析1.对上一个没有事务管理的项目进行优化目标是把类AlipayDaoImpl里的整个transfer()方法作为事务管理,这样transfer()里的所有操作都纳入同一个事务,从而使transfer()里的所有操作要么一起成功,要么一起失败。2.优化流程a.在applicationContext.xml文件中添加事务管理约束信息b.定义事务管理器,这里可以理解为将事务功能理解为切面类c.将指定的方法定义为切点,并将事务通知与切点组合3.关键代码:编写事务通知解析原创 2021-01-07 12:01:33 · 328 阅读 · 0 评论 -
ssm:spring事务管理-----没有事务管理的情况分析
1.事务的基本概念事务是访问数据库的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单元。通过事务,数据库能将逻辑相关的一组操作绑定在一起,以便保持数据的完整性。事务有4个重要特性,简称ACID。a.原子性(Automicity,A):即事务中的所有操作要么全部执行,要么全部不执行。b.一致性(Cousistency,C):事务执行的结果必须是使数据库从一个状态变到另一个一致状态。c.隔离性(Isolation,I):即一个事务的执行不能被另一个事务影响。d.持久性(Durabi原创 2021-01-07 10:40:33 · 422 阅读 · 0 评论 -
ssm:spring操作数据库-----JdbcTemplate
使用原始JDBC操作数据的代码比较复杂,繁琐,因此spring专门提供了一个模板类JdbcTemplate来简化JDBC的操作。1.JdbcTemplate的各种方法execute(String sql):用于执行sql语句,通常执行DDL语句int update(String sql):根据sql中的不带参数的增删改查语句执行数据操作,返回受影响的行数Int update(String sql,Object...args):这个sql通常是带"?"占位符的,args用于为这些占位符参数赋值,同时返原创 2021-01-06 21:57:26 · 246 阅读 · 0 评论 -
ssm:面向切面编程-----使用XML定义切面类
相关实例:使用特定接口定义切面类使用注解定义切面类上述切面类,要么用到了特定接口,要么用到了注解,各有不足之处。使用注解有个问题,就是直接在类里面编写注解,不能分离,不方便修改与维护其实还有一种方法,既不需要实现特定接口,也不需要使用注解,只需在第三方的配置文件中配置一下,这就是使用XML配置文件定义切面的方式,也是目前最常用的AOP方式。1.若干AspectJ标签的含义<aop:config>:配置AOP,实现将一个普通类设置为切面类的功能<aop:aspect>:配原创 2021-01-06 13:39:38 · 356 阅读 · 0 评论 -
ssm:面向切面编程-----使用注解定义切面
1.切面类的实现切面类都是通过实现各种特定的接口来实现的,缺点是必须要实现特定的接口,且一个类基本上只有一个重写方法是有用的。对于普通的类,若不实现特定的接口,可以通过可以通过注解转化为切面类(通知类)2.注解的作用@Aspect注解将此类定义为切面@Before注解用于将目标方法配置为前置通知@AfterReturning注解用于将目标方法配置为后置通知,在方法执行完毕后有返回值@Around定义环绕通知@AfterThrowing配置异常通知@After也是后置通知,在方法执行完毕后没原创 2021-01-06 10:22:46 · 793 阅读 · 0 评论 -
ssm:面向切面编程-----AOP理论知识
相关实例:AOP初试身手1.AOP的一些基本概念a.切面:一个单独的类,通常在此类种定义一些辅助功能或系统功能的方法。b.切点:主业务类的有些方法只想专注于完成核心业务逻辑,不想混入一些辅助性的功能,可以把这些方法定义为切点,切点就是确定什么位置放置切面。c.通知:切点确定了使用切面的位置,但什么时候应用切面就由通知来确定。d.织入:切面和切点都是独立的功能类,通过织入才能让切面切入切点,所以织入就是一种配置过程,让切面能准确的切入指定的位置。2.spring配置文件中的配置顺序a原创 2021-01-06 09:01:10 · 174 阅读 · 0 评论 -
ssm:spring面向切面编程-----AOP编程初试身手
1.传统编程模式的弊端通过以下案例你将会发现,虽然在调用addUser()方法时实现了日志的输出,但这个程序有一个问题,就是不得不在addUser()方法的主业务代码前面添加"log.info(“开始添加用户。。。”)语句,以及在主业务代码后面添加"log.info("完成添加用户。。。)"语句。这些语句以硬编码的方式混入主业务代码中,难以分割,可移植性差。解决问题的思路是将这些日志之类的功能独立出来,作为独立的一个或多个类,在需要时调用,而且最好不是显示调用,因为如果时显示调用,仍然要在目标方原创 2021-01-05 21:52:50 · 170 阅读 · 1 评论 -
ssm:spring控制反转-----基于注解的依赖注入
除了用xml配置文件的方式进行依赖注入外,还可以使用注解直接在类中定义Bean实例,这样就不需要在spring配置文件中声明Bean实例。实现步骤(3个关键步骤)a.导入AOP的jar包,因为注解的后台实现用到了AOP编程。b.需要添加相应的约束。c.需要在spring配置文件中配置组件扫描器,用于在指定的基本包中扫描注解。1.使用注解@Component定义Bean需要在类上使用@Component,其默认的属性是value。关键代码如下:@Component("user")等同于@Co原创 2021-01-05 14:46:40 · 272 阅读 · 0 评论 -
ssm:spring控制反转-----基于xml的依赖注入
涉及知识点:浅谈配置文件中的Bean的属性Bean必须满足以下两点要求才可以被实例化1.Bean类必须提供一个无参的构造方法。若程序员定义了有参的构造方法,则必须要显示的提供无参的构造方法。2.属性需要提供setter方法。1.设值注入设值注入是指spring通过反射机制调用setter方法来注入属性值。关键代码如下<!-- 设值注入 --><bean id="user01" class="com.xiaochen.entity.User"> <prope原创 2021-01-05 11:02:15 · 149 阅读 · 0 评论 -
ssm:spring控制反转-----浅谈配置文件中的Bean的属性
Bean可以简单的理解为,就是一个在spring配置文件中实例化的对象1.bean有多个属性及子节点spring配置文件的根节点beans的下一级节点是bean,用于创建java类的实例化对象(俗称Bean)<beans> <bean id="..." class="..." scope="..."> <property name="..." value="..." ref="..." /> <contructor-arg name=".原创 2021-01-04 21:39:11 · 152 阅读 · 0 评论 -
ssm:spring控制反转-----依赖注入
1.理论知识IoC(控制反转),即调用者创建被调用者的实例对象不是由调用者自己完成,而是由spring容器完成。IoC只是一种编程思想,具体的实现方法是依赖注入(DI:Dependency Injection)。依赖注入解决了传统的编程方法中类与类之间直接依赖的问题,是目前最优秀的解耦方式。依赖注入让spring的bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合在一起。2.应用实例1:写一个简单的传统的存在直接依赖的分层架构项目项目目录结构图IRegisterDao.jav原创 2021-01-04 16:12:04 · 224 阅读 · 0 评论 -
ssm:spring理论知识
1.spring的体系结构(spring包含7大功能模块)a.Core模块:Core模块是spring的核心类库,提供控制反转(Inversion of Control IoC)功能。b.AOP模块:AOP模块是spring的AOP库,提供了AOP(Aspect Oriented Programming:面向切面编程)拦截器机制。c.ORM模块:spring的ORM(Object Relational Mapping:对象关系映射) 模块提供对常用的ORM框架的管理和支持,但spring本身并原创 2021-01-04 13:43:42 · 134 阅读 · 2 评论 -
ssm:多表关联查询(一对多,多对一,多对多)
1.一对多查询:关键点在于collection标签一对多查询是指在查询一方对象的时候,同时将其所关联的多方对象也都查询出来。一个班级有多个学生,一个学生只属于一个班级。数据库student表里有个字段classno是外键,对应主键表class的主键cid例:查询指定班级时,同时获取该班级的所有学生关键代码:主配置文件mybatis-config.xml,映射文件ClassesMapper.xmlmybatis-config.xml关键代码<config> <!-- 注册属性原创 2021-01-04 11:57:47 · 4740 阅读 · 0 评论 -
ssm:分页查询基础
1.分页原理分页查询的原理在于两个参数,一个是页码pageno,一个是页尺寸pagesize。只要这两个参数确定,下面这个伪sql语句就可以查询第pageno页的数据。select * from student limit (pageno-1)*pagesize,pagesize2.实现分析若直接以pageno和pagesize作为参数传递,则mysql无法识别表达式(pageno-1)*pagesize。所以通常把它综合为一个参数startRow,让表达式(pageno-1)*pagesize原创 2021-01-03 20:25:17 · 1538 阅读 · 1 评论 -
ssm:动态查询(浅谈映射文件)
动态sql多用于解决查询条件不确定的情况。在程序运行期间,根据用户提交的多种可能的查询条件进行查询,提交的查询条件不同,动态生成和执行的sql语句也不同。常用的动态标签有if,where,choose,foreach等。1.if标签对于该标签的执行,当test的值为true时,会将其包含的sql片段拼接到其所在的sql语句中(有条件的选择拼接)关键代码(在dao层的接口和实现类添加searchStudentsIf(Student student)方法,在映射文件StudentMapepr.xml添原创 2021-01-03 17:49:39 · 501 阅读 · 0 评论 -
ssm:单表的增删改查(浅谈映射文件)
单表的增删改查1.结果映射resultMap对数据的查询会用到结果映射,对数据的增删该则无需用到结果映射。所谓的结果映射集就是将sql数据表的列名(column)与java实体类的属性名称(property)进行关联匹配的一种机制。若sql数据库的sql数据表的列名(column)与java实体类的属性名称(property)未正确匹配的话。那么相应的查询结果将为空。 应用实例:利用结果映射查询全部学生在第一个mybaitis项目()中其结果映射(sql字段----->java实体类)是通原创 2021-01-03 10:53:38 · 423 阅读 · 1 评论 -
ssm:mybatis主配置文件简介
主配置文件简介1.主配置文件中所有主要的标签如下:<config> <properties>用于动态替换内部定义属性</properties> <settings>用于改变mybatis运行时的行为</settings> <typeAliases>为java的POJO类起别名</typeAliases> <typeHadlers>将传入的参数(java类型)转换为(jdbc类型)</typeHa原创 2021-01-02 18:34:13 · 137 阅读 · 2 评论 -
ssm:优化第一个MyBatis项目
优化:我的第一个mybatis项目优化后的项目结构图优化内容1.使用工具类简化SqlSession对象的创建工具类代码MybatisUtil.javapackage com.lifeng.utils;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSes原创 2021-01-02 17:13:05 · 197 阅读 · 1 评论 -
ssm:第一个Spring MVC程序
应用示例:用户通过浏览器提交一个请求,服务端处理器在接受到这个请求后,给出一条欢迎信息"Hello Spring MVC",并在响应页面显示该信息,采用传统的配置式开发方式。项目目录截图1.将spring相关jar包和spring依赖的common-logging-1.2jar包复制到目录WebContent/WEB-INF/lib下,选中这些包复制到目录WebContent/WEB-INF/lib下,选中这些包:右键build path—>add build path2.创建com.life原创 2020-12-21 15:07:19 · 125 阅读 · 0 评论 -
ssm:第一个Spring项目
应用示例:之前在一个类中调用另一个类都是在本类中新建一个要调用的另一个类对象,然后再调用其方法,这次用Spring实现在一个类中不新建另一个类的对象也能调用另一个类的程序项目目录截图1.将spring相关jar包和spring依赖的common-logging-1.2jar包复制到目录WebContent/WEB-INF/lib下,选中这些包复制到目录WebContent/WEB-INF/lib下,选中这些包:右键build path—>add build path2.创建com.lifeng原创 2020-12-20 15:31:59 · 116 阅读 · 1 评论 -
ssm:第一个MyBatis项目
1.SSM框架简介:a.SSM是Spring,Spring MVC和MyBatis三大框架的组合。b.SSM采用标准的MVC模式,将整个项目划分为数据访问层(DAO层),业务逻辑层,控制层,表示层。c.使用Spring实现业务对象管理并整合其他框架。d.使用Spring MVC进行请求转发与视图管理。e.使用MyBatis实现对数据的访问。2.MyBatis与Hibernate相比,其优点有以下几点:a.SQL语句与代码分离。只需在XML映射文件中配置SQL语句,而无须在java代码中编写SQ原创 2020-12-19 15:53:45 · 231 阅读 · 1 评论