![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 73
有上进心的阿龙
吃不了自律的苦,就要受平庸的罪!学到老,活到老!
展开
-
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)4
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)435、总结:可以将项目打成war包。直接在tomcat服务器里面运行。把这个war包放在tomcat服务器里面去运行。启动服务器win+Rstartup.bat启动之后,会自动把ssm-crud.war解析成文件夹。这里除了一个问题:就是启动tomcat之后,不会解析war包!!!直接浏览器输入local:8080/ssm-crud/就可以访问了。这就是maven的强大之处。整个项目的注意点:1、原创 2021-11-30 04:21:19 · 698 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)3
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)334、删除_实现批量删除。注意:因为我们这里加入了一列,所以之前写的单个删除的方法里面。现在是第三列是empName。所以:需要改成2.这个删除按钮就是批量删除你已经选中的所有记录。右键删除-》检查。发现没有给这个批量删除的按钮id。绑定批量删除按钮的点击事件:只要点击批量删除按钮,就会显示这些选中的员工的empName。进行二次确认。遍历 五个里面被选中的元素,拿到这个选中的多选框对应这一行数据里原创 2021-11-30 03:56:58 · 388 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)2
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)2删除_全选 & 全不选效果:我们的表单里面,这里还需要加入一列,属性是多选框。除了标题这里,以后的每一行数据里面都要有多选框。 var checkBoxTd = $("<td><input type='checkbox' class='check_item'/></td>");看效果:接下来完成的功能就是:点击标题列的多选框,下面五个多选框跟着原创 2021-11-30 02:53:01 · 609 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)1
详细笔记的第一遍:学习ssm的整合-CRUD的第9天(2021-11-30)132、删除单一员工。后面还会学习批量删除。预计批量删除的效果:二次确认:点击单个删除:会提示你确定要删除哪个(empName)员工吗?单个删除。URI:/emp/{id} DELETE先写Service和Controller层的:service:controller:1、点击删除按钮,弹出删除的模态框。注意:绑定删除按钮的点击事件,和绑定编辑是一样的。因为他们都是后期动态创建的。需原创 2021-11-30 01:46:08 · 693 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第8天(2021-11-28)2
详细笔记的第一遍:学习ssm的整合-CRUD的第8天(2021-11-28)231、解决:ajax请求直接写type:“PUT”,让数据成功封装上。之前讲:数据封装不上。后端的参数,全为null。解决办法:springmvc为我们提供了。31、...原创 2021-11-28 17:11:46 · 216 阅读 · 1 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第8天(2021-11-28)1
详细笔记的第一遍:学习ssm的整合-CRUD的第8天(2021-11-28)130、修改_Ajax发送PUT请求引发的血案。现在准备写:点击更新按钮,发送Ajax请求,往数据库里面去修改数据。因为更新操作还是允许用户去修改自己的邮箱。所以还是需要对邮箱内容进行校验。首先为更新按钮绑定点击事件:模态框里面的更新按钮:1、点击更新按钮之后,第一步:校验邮箱是否合法:第二步:发送ajax请求,向数据库更新对应的数据根据RESTFul风格:修改员工数据请求路径:/emp/{id原创 2021-11-28 04:09:02 · 288 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)5
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)528、修改_创建员工的修改模态框现在来做这个按钮的功能。要求:点击某一行员工信息的编辑按钮。首先会显示该员工的所有信息在模态框中。逻辑:1、点击编辑2、弹出用户修改的模态框(显示用户信息)3、点击更新按钮,完成用户的修改。操作:1、复制之前写的员工新增的模态框<div class="modal fade" id="empAddModal" tabindex="-1" role="dialog" a原创 2021-11-28 03:08:58 · 378 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)4
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)427、新增JSR303校验一般对于比较重要的数据,前端做完校验之后,还需要后端校验。因为:前端的校验不安全,用户可以绕过js,或者修改元素对应的前端代码。来通过校验。比如:右键元素,点击检查。可以对代码进行修改。后端校验,我们使用SpringMVC通过的JSR303进行校验。包括数据库里面需要对字段empName加上唯一性约束。想要项目支持JSR303校验,需要导入Hibernate-Validator pom文件原创 2021-11-27 19:51:13 · 407 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)3
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)326、新增_Ajax校验用户名细节处理。现在还有一个小bug现在系统有两层校验:1、先会对用户填写的name看数据库中是否有重复的。2、然后再校验name的填写是否符合正则表达式。这里有个不好的点就在于,当你满足不重复的条件,显示用户名可用,但是不满足正则表达式的时候,点击保存,又会提示你:用户名应该是长什么样。1、2、这个对于用户体验感就不好。原因:我们校验填写的empName是否再数据库重复了,是在文本框原创 2021-11-27 19:24:37 · 1098 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)2
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)225、新增_Ajax校验用户名是否重复。原创 2021-11-27 05:02:02 · 729 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)1
详细笔记的第一遍:学习ssm的整合-CRUD的第7天(2021-11-27)123、新增员工记录的时候,还需加上jQuery前端校验(检测用户填写的字段是否合理)原创 2021-11-27 01:36:25 · 604 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第6天(2021-11-26)1
详细笔记的第一遍:学习ssm的整合-CRUD的第6天(2021-11-26)122、点击新增按钮实现添加员工到DB中。点击保存之后,将填写的员工信息直接插入到员工表里面。1、首先给保存按钮绑定点击事件。 <button type="button" class="btn btn-primary" id="emp_save_btn">保存</button>给保存按钮加上一个idemp_save_btn在script里面定义方法: //绑定模态框里面的保存按钮的点原创 2021-11-26 01:25:48 · 633 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)3
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)321、新增_Ajax显示部门信息。之前说这个组件,deptName,不能写死,需要根据数据库里面具体的值来进行展示。给服务器发送Ajax请求,拿到所有部门信息,把这些部门信息显示到下拉列表中。所以,在点击新增按钮之后,先查DB,再弹出模态框。查DB的部门数据,放到下拉列表里面,单独定义一个新方法。//查DB的部门数据,放到下拉列表里面 function getDepts(){ }//查DB原创 2021-11-25 05:02:55 · 648 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)2
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)220、新增_创建员工新增的模态框现在是已经把员工的分页查询做完了,使用的是ajax版本。实现的效果就是:点击分页条里面的任意一个按钮,都会查询对应页面的数据,并展示在表格里面。整个系统的CRUD都是使用Ajax版本。不再进行页面的跳转了。现在开始做新增。预计功能:1、点击新增按钮:2、弹出员工新增的对话框:部门数据,是要从数据库查出来,然后显示给用户去选择。填写完成之后点击保存,就会对数据入库。用原创 2021-11-25 03:15:18 · 610 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)1
详细笔记的第一遍:学习ssm的整合-CRUD的第5天(2021-11-25)119、分页查询显示完整细节。细节1:如果当前是第一页,那么首页和上一页的按钮禁用掉。效果:置灰按钮代码:修改函数:build_page_nav //这个方法是用来显示分页条数据的。并且绑定动作,可以具体跳到相应的页面。 function build_page_nav(result){ //page_nav_area var ul = $("<ul></ul&g原创 2021-11-25 02:29:29 · 708 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第4天(2021-11-24)2
详细笔记的第一遍:学习ssm的整合-CRUD的第4天(2021-11-24)218、接下来就应该解析分页数据了。然后填充到第四行分页信息那里。两个函数:1、build_page_info://这个方法是用来显示分页数据的。 function build_page_info(result){ $("#page_info_area") .append("当前第"+result.extend.pageInfo.pageNum +"页," +原创 2021-11-24 22:03:53 · 323 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第4天(2021-11-24)1
详细笔记的第一遍:学习ssm的整合-CRUD的第3天(2021-11-23)217、构建员工列表。从首页index.jsp出发,发一个Ajax请求,拿到Msg数据,使用js进行解析, 使用DOM增删改的形式把这些数据显示在页面上。之前:一进首页发/emps请求,进入对应的控制器方法,得到数据,进入list.jsp页面进行展示。现在:一进来首页,发一个ajax请求,调对应的控制器方法,得到Msg这个json字符串,js对这个json字符串进行解析,然后显示在页面上。将原先的命名为index2.js原创 2021-11-24 03:04:07 · 408 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第3天(2021-11-23)2
详细笔记的第一遍:学习ssm的整合-CRUD的第3天(2021-11-23)215、显示分页数据现在这些数据已经显示出来了,但是下面的分页信息还没有做。下面开始做这部分的功能:现在的分页信息显示:<div class="row"> <div class="col-md-6"> 当前记录数:xxx </div> <div class="col-md-6原创 2021-11-24 00:52:23 · 716 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第3天(2021-11-23)1
详细笔记的第一遍:学习ssm的整合-CRUD的第3天(2021-11-23)114、Bootstrap分页页面现在已经对于分页查询测试成功,并且可以查到相应的数据。所以:我们现在准备将制作页面来承载这些数据。首页index.jsp会直接发送/emps请求。然后这个请求由EmployeeController的getEmps这个控制方法。获取到员工数据之后,绑定到视图里面,并转发到list.jsp页面。预计我们的页面是这样的:在list.jsp里面进行编辑1、head标签里面引入一些bo原创 2021-11-23 02:09:07 · 684 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第2天(2021-11-22)2
详细笔记的第一遍:学习ssm的整合-CRUD的第2天(2021-11-22)211、测试往员工表里面批量插入数据:使用可以执行批量操作的sqlSession因为批量的sqlSession项目中也需要用到。所以:在spring的配置文件(applicationContext.xml)里面配置一个可以批量操作的sqlSession【注意:】以前没见过配置此项。<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"原创 2021-11-23 00:05:43 · 358 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第2天(2021-11-22)1
详细笔记的第一遍:学习ssm的整合-CRUD的第2天(2021-11-22)1原创 2021-11-22 00:40:22 · 437 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第1天(2021-11-21)2
详细笔记的第一遍:学习ssm的整合-CRUD的第一天(2021-11-21)2八、配置Spring的配置文件applicationContext.xml:1、配置数据源:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-11-21 18:11:42 · 244 阅读 · 0 评论 -
详细笔记的第一遍:学习ssm的整合-CRUD的第1天(2021-11-21)1
详细笔记的第一遍:学习ssm的整合-CRUD的第一天(2021-11-21)一、项目简介SSM:SpringSpringMVCMybatisCRUD:create:创建retrive:查询update:更新delete:删除系统大致的模样:赘述一下系统的功能点:1、使用分页来展示员工数据2、不管是新增数据还是修改数据的时候,都会对你填入对应的字段值进行校验。这个校验使用的是前端校验+后端校验的双层校验形式。前端:jQuery。后端:使用SpringMVC自带的JSR30原创 2021-11-21 05:20:23 · 587 阅读 · 0 评论 -
学习Spring的第8天
学习Spring的第8天数据库针对三种并发问题出现的三种隔离级别:1、读未提交:read uncommited 禁止设置数据库的隔离级别为这个,因为会出现脏读现象。可以读出 人家没有提交的数据。这种情况会出现脏读,把人家没有提交的(修改数据的操作没有提交)数据给读出来了。2、读已提交 read commited 可以设置,但是会出现不可重复读和幻读的情况。因为第一次读和第二次读,中间执行了增删改的操作且这个操作已经提交,导致第二次读出来的数据和第一次读出来的数据不一致,但是这个允许出现。因为毕竟读原创 2021-11-07 19:49:29 · 880 阅读 · 2 评论 -
学习Spring的第7天
学习Spring的第7天环绕通知 @Around它很强大,但是很少使用它之所以强大,是因为,它可以改变目标方法的参数。比如:目标方法的参数值。比如本来人家是参数是10/2,,结果被你改成20/2其他的四个通知@Before@After@AfterThrowing@AfterReturn都不能改变目标方法的参数。如果由多个切面类的话,那执行顺序是怎样的呢?有两个切面类:如果是一个切面的话顺序是:前置通知,后置通知,返回通知。1、LogUtils2、VaAspect那么L首字原创 2021-11-06 16:49:31 · 321 阅读 · 0 评论 -
学习Spring的第6天
学习Spring的第6天这些就是第三步,我们要告诉这些通知方法,在什么时候需要执行。配置里面的最后一个:开启基于注解的AOP模式。在配置文件ioc.xml里面去配置。引入aop名称空间<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc原创 2021-11-06 12:20:49 · 254 阅读 · 0 评论 -
学习Spring的第5天
学习Spring的第5天可以使用动态代理来将日志代码动态的写在核心方法执行的前后。但是,我们发现,虽然动态代理很强大,但是写起来好难。当然,这个动态代理技术最大的缺陷就是:如果目标对象没有实现任何接口...原创 2021-11-04 22:46:25 · 13449 阅读 · 2 评论 -
学习Spring的第4天
学习Spring的第4天@Resource@Autowired区别:1、@Autowired是Spring自己的注解,最强大2、@Resource 是J2EE的。java的标准因为@Resource是标准,所以它的扩展性很强。即使你的容器用的不是Spring。切换为另一个框架,@Resource照样适用。@Autowired是Spring自己的注解,所以@Autowired离开了Spring就没办法使用了。注意地方:1、你想要使用@Autowired自动装配,那你就先要把一些组件带上那四大原创 2021-11-04 00:25:52 · 842 阅读 · 1 评论 -
需要添加context命名空间的beans写法
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLo原创 2021-11-03 00:37:04 · 180 阅读 · 0 评论 -
学习Spring的第3天
学习Spring的第3天之前学习的手动赋值。基本类型没有自动赋值。这里讲的自动赋值就是指的自定义的类型。之前我们学的都是手动赋值。我们在Person类里面有个属性是Car car之前在ioc.xml里面给person的car属性赋值方式:(为Person里面的自定义类型的属性赋值)这就是手动赋值:现在开始看自动赋值是什么样子的?自动赋值就是自动装配基于XML的自动装配。<bean id="person" class="com.rtl.bean.Person" autow原创 2021-11-02 21:45:48 · 402 阅读 · 1 评论 -
学习Spring的第2天
学习Spring的第2天问:容器里面创建对象有顺序吗?有的。按照配置文件里面写的顺序来创建。bean之间的依赖,只是改变创建的顺序。测试bean的作用域。分别创建单实例和多实例的beanbean的作用域的意思就是:这个bean是否是单实例的?默认是单实例的。测试bean的作用域问:什么是bean的作用域?指的是bean是否是单实例。默认情况:单实例。prototype:多实例singleton:单实例(默认)单实例:1、在容器启动之前,这些单实例就已经创建好并保存在容器里面了。原创 2021-11-01 21:16:44 · 253 阅读 · 0 评论 -
学习Spring的第1天
学习Spring的第1天框架:Mybatis使用来解决和数据库进行交互的。SpringMVC是用来替代我们写这些复杂的Web逻辑的。Spring是一个容器框架。EJB:Enterprise Java Bean核心关注:IOC和AOP容器:管理所有的组件;组件:就是你写的那些类。DI:Dependence Injection依赖注入。AOP:Aspect Oriented Programming面向切面编程。进入官网:https://spring.io/学好Spring就是学好I原创 2021-11-01 02:12:22 · 6940 阅读 · 10 评论