01 2020 档案
摘要:类型转换可以将请求参数转换为指定的类型、指定的格式(数据的格式化),然后传给业务方法的参数。 Spring MVC内置了常用的类型转换器。如果内置的类型转换器满足不了需求,可以使用自定义的类型转换。 自定义类型转换有2种方式: 使用Converter 使用Formatter Converter方式
阅读全文
摘要:接收表单数据有3种方式。 1、使用简单类型接收表单数据(绑定简单数据类型) 表单: <form action="${pageContext.request.contextPath}/userController/handler" method="post"> 用户名:<input name="use
阅读全文
摘要:使用注解配置spring mvc (1)spring mvc的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:
阅读全文
摘要:大体流程: 1、浏览器向web服务器发送HTTP请求 2、DispatcherServlet拦截所有请求,将请求地址(url)传给HandlerMapping 3、HandlerMapping根据url-controller之间的映射关系,确定要调用的controller,并将要调用哪个contro
阅读全文
摘要:HandlerMapping 处理器映射 HTTP请求被DispatcherServlet拦截后,会调用HandlerMapping来处理,HandlerMapping根据 url<=>controller 之间的映射关系来确定要调用哪个controller来处理。 有2种HandlerMappin
阅读全文
摘要:(1)新建Spring项目 (2)添加所需要的jar包 spring的5+2: spring-core.jar spring.beans.jar spring-context.jar spring-expression.jar spring-aop.jar spring-web.jar spring
阅读全文
摘要:java web的三层架构: 表现层(SpringMVC) 业务层(Spring) 持久层(Hibernate、MyBatis) SpringMVC是表现层的框架,是一个MVC框架。 MVC的三部分: model view controller 常见的三种控制器: Servlet Struts2的a
阅读全文
摘要:原因 先前已部署过,输出目录有lib文件夹。 再次部署时,IDEA一检测,发现输出目录已经存在lib文件夹,认为已经拷贝过了,为节省时间,不再重新拷贝jar包,殊不知我们新添加了jar包。 于是我们新添加的jar包就被漏掉了。 解决方式一 直接删掉out文件夹。 解决方式二 Project Stru
阅读全文
摘要:很多时候我们看视频教程,视频中的鼠标指针带有一个光圈,点击时有从中心扩展的特效。 可使用软件Bandicam来录制 带鼠标光圈效果的视频。 (1)下载安装Bandicam 如果未购买,也可以一直使用,只是录制的视频上会有一个小小的水印,问题不大。 (2)录像设置 (3)设置鼠标光圈 说明:实际鼠标并
阅读全文
摘要:需要添加spring-text.RELEASE.jar。 需要添加Junit4的2个jar包:junit.jar、hamcrest-core.jar。 写Junit的注解,Alt+Enter添加即可。 也可以自己下载添加:https://github.com/junit-team/junit4/wi
阅读全文
摘要:Spring提供了2种事务管理 编程式的 声明式的(重点):包括xml方式、注解方式(推荐) 基于转账的demo dao层 新建包com.chy.dao,包下新建接口AccountDao、实现类AccountDaoImpl: public interface AccountDao { //查询用户账
阅读全文
摘要:Spring事务管理有3个API,均为接口。 (1)PlatformTransactionManager 平台事务管理器 常用的实现类: DataSourceTransactionManager:这个实现类是spring自带的,底层使用JDBC管理事务 HibernateTransactionMan
阅读全文
摘要:有时候一个业务需要多次操作数据库,比如转账: 如果reduce()执行成功,add执行失败,那钱是转出去了,但对方并没有收到,钱转丢了。 使用事务可解决此问题。 事务:逻辑上的一组操作,要么全部成功,要么全部失败。 事务的4个特性 原子性:最小单元,不可再分割 一致性:事务执行前后,数据的完整性保持
阅读全文
摘要:自动换行 内容接触到单元格右边界时,会自动换行。 选中单元格 -> 右键 -> 设置单元格格式 手动换行 Alt+Enter
阅读全文
摘要:更改适配器属性 -> 选择一个网络,单击右键 -> 属性 -> Internet 协议版本 4 (TCP/IPv4)-> 属性 进入如下界面,开始配置: IP地址: IP地址用于网络通信,根据我的地址找到我 <=> 根据机器的IP地址找到这台机器在网络中的位置,确定了位置就可以向这台机器发信息交互了
阅读全文
摘要:execute(String sql) 可执行任何sql语句,但返回值是void,所以一般用于数据库的新建、修改、删除和数据表记录的增删改。 int update(String sql) int update(String sql, Object...args) 增删改,args传递实参,返回受影响
阅读全文
摘要:Mybatis三剑客 在使用mybatis时,以下3个组件也很常用 MyBatis-generator mybatis逆向工程,根据数据表生成实体类、mapper接口、xml映射文件 Mybatis-plugin mapper接口中的方法、xml映射文件中相应的元素、sql语句,快速定位 MyBat
阅读全文
摘要:MyBatis的缓存指的是缓存查询结果,当以后使用相同的sql语句、传入相同的参数进行查询时,可直接从mybatis本地缓存中获取查询结果,而不必查询数据库。 mybatis的缓存包括一级缓存、二级缓存,一级缓存默认是开启的,二级缓存默认是关闭的。 一级缓存: SqlSession级别,在SqlSe
阅读全文
摘要:懒加载的概念 MyBatis中的延迟加载,也称为懒加载,是指进行关联查询时,按需执行子查询。 当程序需要获取|使用关联对象时,mybatis再执行子查询,这样可以减轻数据库的压力,在一定程度上可以降低程序运行消耗、提高查询效率。 懒加载的适用场景: 当前业务只使用主加载对象的其他属性,或者暂时只使用
阅读全文
摘要:2个实体:订单、商品,一个订单可以包含多种商品,同时一种商品可以属于多个订单,即多对多。 商品表goods_tb: 订单表order_tb: no是订单编号,user_id与用户表的id关联。 需要新建一张中间表order_item_tb,引入2个“多”的主键作为外键,把这2个“多”联系起来: pu
阅读全文
摘要:有2个实体:用户、订单,一个用户可以拥有多个订单,同时这多个订单属于一个用户,即一对多。 user_tb: order_tb: 在“多”的一方(order)添加“一”的一方(user)的主键(user_id)作为外键。 使用嵌套结果 (1)给2个实体都编写pojo类,需要在“一”的一方写个List来
阅读全文
摘要:有2个实体:用户、会员卡,一个用户只能办理一张会员卡,即一对一。 user_tb : 需要在一方引入另一方的主键作为外键。 card_tb: 使用扩展类 (1)在pojo包下新建User类: package com.chy.pojo; public class User { private Inte
阅读全文
摘要:在关系型数据库中,多表之间存在三种关联关系: 一对一:一张身份证对应一个人 <=> 一个人也只对应一张身份证 一对多:一个用户可以有多个订单 <=> 这多个订单属于同一个用户 多对多:一个订单可以包含多种商品,一种商品可以属于多个订单。 创建数据库时如何处理这三种关联关系? 一对多:在任意一方引入对
阅读全文
摘要:parameterType、resultType的数据类型要写全限定类名或者别名。 mybatis已经给常用的数据类型起好了别名,参考mybatis.pdf 3.1.1小节: 基本数据类型很少用,一般都是用包装类。总结下来就是:字母全小写。 如果在mybatis全局配置文件中使用包扫描: <type
阅读全文
摘要:动态SQl是MyBatis的强大特性之一,可以完成对SQL语句的动态组装。 比如说传入一个User对象,要根据这个User中的数据查询用户的完整信息: 如果User对象中只有name属性有值,sql语句是:select * from user_tb where name=#{name} 如果User
阅读全文
摘要:MyBatis的执行过程: (1)读取MyBatis配置文件mybatis-config.xml (2)加载映射文件 (3)构建会话工厂SqlSessionFactory (4)创建SqlSession对象 (5)创建Executor接口的实例。 MyBatis底层定义了一个Executor接口来操
阅读全文
摘要:问题: 想复制文库中的文字,但无法用鼠标选中文本,或者能选中但复制不了。 解决方式: 每个条目下面都有快照,点击快照转到预览页面,直接复制内容即可。
阅读全文
摘要:效果: 步骤: 对着某个标签页单击右键,选择Split Vertically或者Split Horizontally即可。
阅读全文
摘要:SqlSessionFactory SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession。 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml
阅读全文
摘要:传统的dao层编写 以前编写dao层,先新建一个包com.chy.dao,再写接口StudentDao: public interface StudentDao { public void insertStudent(Student student); public void updateStude
阅读全文
摘要:根元素<configuration>,子元素: <properties> <setttings> <typeAliases> <typeHandlers> <objectFactory> <plugins> <environments> <databaseIdProvider> <mappers>
阅读全文
摘要:普通的增改删查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.
阅读全文