- 博客(56)
- 资源 (1)
- 收藏
- 关注
原创 Spring详解
1. IOC1.1 拓展现代化的Java开发,就是基于Spring的开发SpringBoot快速开发的脚手架基于SpringBoot可以快速开发微服务约定大于配置SpringCloudSpringCloud是基于SpringBoot实现的学习SpringBoot的前提是掌握Spring以及SpringMVC,SpringBoot起到承上启下 的作用;弊端:配置十分繁琐,人称:“配置地狱”;1.2 IOC理论推导问题展示对象包:(接口)package com.kan
2022-04-18 21:16:28
489
原创 python详解(面向IR)
python详解(面向IR)在解决IR相关问题时,我们首先面临的是读取操作;python读取文件:with open("file.txt", "r") as file: # 10表示读取的数据量(虽然python没有字符的概念,但是这里的参数是读取字符的个数) str = file.read(10) print(str)with open("file.txt", "r") as file: # 得到的是一个list lines = file.readline
2022-04-13 21:44:36
1166
原创 Linux详解(面向部署)
Linux详解(面向部署)Linux没有服务(service),是守护进程(daemon)基本命令:sync:将数据由内存同步到硬盘中shutdown:关机命令(后加参数设置关机时间)reboot:重启ls:查看指定目录下的文件(后跟目录)根目录:(cd /)/bin:存放着常用命令/boot:设备启动的核心文件/dev:存放的是Linux的外部设备/mnt:让用户临时挂载别的文件系统/etc:存放所有的配置文件/home:用户的主目录/lost+found:存放突然关机的
2022-04-12 22:44:54
1060
原创 Spring-IOC创建对象方式
Spring-IOC创建对象方式使用无参构造创建对象,默认使用有参构造创建对象下标赋值<bean id="user1" class="com.kangzhu.pojo.User"> <constructor-arg index="0" value="kangzhu1"/></bean>根据参数类型赋值<!--但是假设有两个参数的类型相同,这种方式不适用--><bean id="user2" class="com.
2022-04-11 21:05:13
173
原创 Spring-HelloSpring
Spring-HelloSpring编写实体类package com.kangzhu.pojo;public class Hello { private String str; public String getStr() { return str; } public void setStr(String str) { this.str = str; } @Override public String toS
2022-04-11 20:39:59
149
原创 Spring-IOC
Spring-IOC1. 拓展现代化的Java开发,就是基于Spring的开发SpringBoot快速开发的脚手架基于SpringBoot可以快速开发微服务约定大于配置SpringCloudSpringCloud是基于SpringBoot实现的学习SpringBoot的前提是掌握Spring以及SpringMVC,SpringBoot起到承上启下 的作用;弊端:配置十分繁琐,人称:“配置地狱”;IOC理论推导问题展示对象包:(接口)package com.kang
2022-04-11 20:00:33
282
原创 Mybatis-缓存
Mybatis-缓存一次查询结果,给它暂存在一个可以直接取到的地方! --> 内存我们再次查询相同数据的时候,就直接走缓存,不用再走数据库了Mybatis可以非常方便地定制缓存和配置缓存默认定义了两级缓存:一级缓存和二级缓存一级缓存默认开启,SqlSession级别的缓存二级缓存需要手动开启和配置,namespace级别的缓存开启二级缓存:在核心配置文件中:(开启全局缓存)<settings><!--显示开启缓存--> <sett
2022-04-10 21:14:10
747
原创 Mybatis-动态SQL(3)
Mybatis-动态SQL(3)1. SQL片段有的时候,我们可能会将一些功能的部分抽取出来,方便复用!现在我们使用sql片段来简化下面这个查询:<select id="queryBlogIF" parameterType="map" resultType="Blog"> select * from blog <where> <if test="title != null"> and title = #{ti
2022-04-10 16:40:49
889
原创 Mybatis-动态SQL(2)
Mybatis-动态SQL(2)1. where标签在上一篇中使用动态SQL-IF的时候查询语句是:<select id="queryBlogIF" parameterType="map" resultType="Blog"> select * from blog where 1=1 <if test="title != null"> and title = #{title} </if> <if test="au
2022-04-10 16:11:50
737
原创 Mybatis-动态SQL
Mybatis-动态SQL什么是动态SQL:动态SQL就是根据不同的条件生成不同的SQL语句;创建一个基础工程导包编写配置文件编写实体类package com.kangzhu.pojo;import lombok.Data;import java.util.Date;@Datapublic class Blog { private int id; private String title; private String author; p
2022-04-09 22:19:53
175
原创 Mybatis-复杂查询(2)
Mybatis-复杂查询(2)从(一对多)一的角度进行复杂查询;实体类:// 学生package pojo;import lombok.Data;@Datapublic class Student { private int id; private String name; // 学生需要关联一个老师 private int tid;}// 老师package pojo;import lombok.Data;import java.util.Lis
2022-04-09 20:49:22
891
原创 Mybatis-复杂查询
Mybatis-复杂查询1. 测试环境搭建导入lombok新建实体类Teacher, Student建立Mapper接口建立Mapper.xml文件在核心配置中绑定注册Mapper接口或者文件测试查询是否能够成功2. 复杂查询实体类:// 学生package com.kangzhu.pojo;import lombok.Data;@Datapublic class Student { private int id; private String name;
2022-04-09 16:26:38
715
原创 Mybatis-Lombok
Mybatis-Lombok官方解释:Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate
2022-04-09 14:20:50
177
原创 Mybatis-使用注解开发
Mybatis-使用注解开发1. 面向接口编程定义与实现的分离;接口反映了系统设计人员对系统的抽象理解;接口应有两类:对一个个体的抽象,它可对应为一个抽象体(abstract class)对一个个体某一方面的抽象,即形成一个抽象面(interface)2. 使用注解开发接口@Select("select * from user")List<User> getUsers();在mybatis核心配置文件中绑定接口<mappers> <
2022-04-09 13:18:39
393
原创 Mybatis-分页
Mybatis-分页1. 使用limit分页# select * from user limit startIndex pageSize;select * from user limit 0, 3;2. 使用Mybatis实现分页,核心SQL接口List<User> getUserByLimit(Map<String, Object> map);Mapper.xml<select id="getUserByLimit" parameterType="
2022-04-08 21:01:26
223
原创 Mybatis-日志
Mybatis-日志1. 日志工厂如果一个数据库操作出现了异常,我们需要排错,日志就是最好的助手Mybatis内置的日志工厂:SLF4JLOG4J(deprecated since 3.5.9)【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握】NO_LOGGING在Mybatis中具体使用哪一个日志,在设置中设定!STDOUT_LOGGING标准日志输出2. 使用标准日志工厂在核心配置文件中:<settings
2022-04-06 21:10:56
846
原创 Mybatis-ResultMap结果集映射
Mybatis-ResultMap结果集映射解决属性名和字段名不一致的问题测试实体类属性名和字段名不一致的情况字段名:id、name、password实体类:private int id;private String name;private String pwd;测试类:@Testpublic void testGetUserById() { // 第一步: 获得sqlSession对象 SqlSession sqlSession = MybatisUtils.get
2022-04-06 20:20:46
912
原创 Mybatis-映射器(继Mybatis-配置之别名优化)
映射器(继Mybatis-配置之别名优化)MapperRegistry:注册绑定我们的Mapper文件方式一:使用相对于类路径的资源路径<mappers> <mapper resource="com/kangzhu/dao/userMapper.xml"/></mappers>方式二:使用映射器接口实现类的完全限定名<mappers> <mapper class="com.kangzhu.dao.UserMapper"/&g
2022-04-06 15:51:48
913
原创 Mybatis-配置之别名优化(继Mybatis-配置之属性优化)
Mybatis-配置之别名优化(继Mybatis-配置之属性优化)1. typeAliases(类型别名)类型别名可为 Java 类型设置一个缩写名字。它仅用于 XML 配置,意在降低冗余的全限定类名书写<typeAliases> <typeAlias type="com.kangzhu.pojo.User" alias="User"/> <package name="com.kangzhu.pojo"/></typeAliases&
2022-04-05 22:08:37
99
原创 Mybatis-配置之属性优化
Mybatis-配置之属性优化1. 核心配置文件mybatis-config.xml(名字可以任意取,这是官方建议命名)Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息配置properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)(1) environment
2022-04-05 21:50:59
267
原创 Mybatis-map和模糊查询
Mybatis-map和模糊查询1. 使用map原因:上一篇的例子中,在修改用户的时候需要传入user对象,这时我们需要传入user的各个属性,包括不需要修改的,编写时有些繁琐,因此可以用map对象代替user对象。(虽然不是很正规,但是很实用)// 万能的map int addUser2(Map<String, Object> map);<!-- 参数类型是map --><insert id="addUser2" parameterType="map
2022-04-05 19:07:24
180
原创 Mybatis-CRUD
Mybatis-CRUD1. namespacenamespace中的包名要和实现接口的包名一致2. select查询语句;id:就是对应的namespace中的方法名;resultType:sql语句执行的返回值;(基本类型和引用类型-类)parameterType:参数类型;note:上一篇文章已经讲到如何搭建整个项目,这里我们只改变接口、接口的实现(mapper.xml)和测试类使用参数类型的示例:// 根据id查询用户 User getUserById(int
2022-04-05 18:04:09
57
原创 Mybatis入门案例
Mybatis入门案例1. 什么是MybatisMybatis是一款优秀的持久层框架;2. 持久化数据持久化持久化就是将程序的数据在持久状态和瞬时状态转化的过程内存:断电即失数据库(jdbc),io文件持久化为什么需要持久化?一些对象不能丢掉内存价格昂贵3. 持久层完成持久化工作的代码块层界限十分明显4. 为什么需要Mybatis传统的JDBC代码太复杂帮助程序员将数据存入到数据库中sql和代码分离5. 第一个Mybatis程序思路:搭建环境 – 导包
2022-04-05 16:12:57
506
原创 JDBC详解
JDBC详解1. 为什么使用JDBC我们平时会用到各种各样的数据库,例如MySQL、MongoDB等。我们可以通过命令行的方式访问数据库服务器,但是我们编写的应用程序却无法直接操作数据库(需要借助数据库驱动)。不同的数据库厂商提供驱动的语法也不尽相同,这是一件令很多程序员头疼的事。因此Oracle提出了JDBC规范,所有的数据库厂商提供的驱动都会实现JDBC规范,这样程序员掌握一套语法便可以在应用程序中操作各种数据库。2. MySQL数据库样例首先需要在项目中导包“mysql-connect
2022-04-04 13:23:29
501
原创 Filter实现权限拦截
Filter实现权限拦截在实现一个Javaweb项目时,有时候客户端获取某些资源需要一定的权限,这时候便可以在这些资源的路由上加过滤器,对客户端的身份进行验证;例子:需要管理员权限才能访问系统资源(sys/sys.jsp)先实现一个登录注册功能:主页<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Titl
2022-03-30 14:05:37
633
原创 监听器(统计在线人数)
监听器(统计在线人数)监听器是GUI中常用的功能,Javaweb中使用场景不是很多,可以使用监听器实现统计网站访问人数;实现原理:服务器回味每个客户端创建一个session,通过监听服务器中session的创建和销毁便可以记录当前访问网站的人数;实现步骤:实现HttpSessionListener类package com.kangzhu.listener;import javax.servlet.ServletContext;import javax.servlet.http.Http
2022-03-30 11:16:06
2669
原创 过滤器Filter
过滤器Filter在使用javaweb进行开发的时候很多人都会遇到乱码的问题,我们不得不在Servlet配置请求和响应的编解码格式package com.kangzhu.servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServl
2022-03-30 10:44:21
48
原创 使用JSP创建JavaBean对象
使用JSP创建JavaBean对象JavaBean实体类javaBean有特定的写法:必须要有一个无参构造属性必须私有化必须有对应的get/set方法一般用来和数据库字段做映射 ORM;ORM:对象关系映射表 --> 类字段 --> 属性行记录 --> 对象例如:package com.kangzhu.pojo;public class People { private int id; private String name;
2022-03-28 22:48:51
2945
原创 JSP标签、JSTL标签、EL表达式
JSP标签、JSTL标签、EL表达式JSP中使用JSTL标签或者EL表达式需要导包:<!-- JSTL表达式依赖--> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </
2022-03-28 22:17:00
127
原创 JSP内置对象及作用域
JSP内置对象及作用域九大内置对象pageContext 存数据request 存数据responsesession 存数据application (ServletContext) 存数据config (ServletConfig)outpage 不怎么用exception作用域<% pageContext.setAttribute("name1", "kangzhu1"); request.setAttribute("name2", "kangzhu2")
2022-03-28 13:38:27
378
原创 JSP基础语法和指令
JSP基础语法和指令JSP基础语法任何语言都有自己的语法,Java有JSP作为Java技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可!),支持Java的所有语法!JSP表达式<%--JSP表达式用来将程序的输出,输出到客户端<%= 变量或表达式%>--%><%= new java.util.Date()%>JSP脚本片段<%--JSP脚本片段--%><% int sum = 0; for (int i =
2022-03-27 22:10:02
68
原创 初始JSP
初始JSP什么是JSPJava server pages:Java服务器端页面,也和servlet一样,用于开发动态web!最大的特点:写JSP就像在写HTML区别:HTML只给用户提供静态数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据JSP原理浏览器向服务器发送请求!,不管在访问什么资源,其实都是在访问Servlet!JSP最终会被转化成一个java类!如何找到JSP转化成的Java类呢?找到idea中的tomcat工作空间,具体路径:在运行tomcat后查
2022-03-26 16:37:09
357
原创 Cookie 和 Session
Cookie 和 Session会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话;有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,称之为有状态会话;一个网站怎么证明你来过?服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了;Cookie服务器登记你来过了,下次你来的时候服务器来匹配你;Session保存会话的两种技术Cookie客户端技术(响应,请求)Session服务器技术,利用这个技术,可以
2022-03-26 13:55:35
371
2
原创 Request应用
Request应用HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,Http请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获取客户端的所有信息。1. 获取前端传递的参数主要用到的方法是req.getParameter();req.getParameterValues();用户登录案例:jsp页面<%@ page contentType="text/html; charset-
2022-03-19 13:16:47
431
原创 python IO和文件操作
python IO和文件操作IO操作# 目录中没有这个文件,会自动创建# 目录中有这个文件,会覆盖原来内容file = open("filename", "w")file.write("Sunday")file.close()# 追加写with open("filename", "a") as file: file.write("Sunday")# 读取with open("filename", "r") as file: file.read()# 可读可写wi
2022-03-19 11:48:08
793
原创 Ajax应用
AjaxAjax即Asynchronous Javascript And XML(异步JavaScript和XML)Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的web应用程序技术;伪造的Ajax:通过iframe标签和javascript来实现web页面的部分刷新。给button绑定点击事件,通过点击事件改变iframe的路径,从而在网页不刷新的前提下,刷新iframe。<!DOCTYPE html><html lang="en"><h
2022-03-17 14:02:47
928
原创 Response重定向
Response重定向一个web资源B收到客户端A的请求后,B通知A去访问另一个web资源C,这个过程叫做重定向;在HttpServletResponse中:void sendRedirect(String var1) throws IOException;实现重定向://直接使用sendRedirect()方法resp.sendRedirect("/down");//本质是下面两行代码resp.setHeader("Location", "/down");resp.setStatus
2022-03-15 21:49:46
557
原创 Response下载文件
Response下载文件web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,一个代表响应的HttpServletResponse对象;如何要获取客户端请求过来的参数:找HttpServletRequest如何要给客户端响应一些信息:找HttpServletResponse1. 简单分类负责向浏览器发送数据的方法ServletOutputStream getOutputStream() throws IOException;P
2022-03-15 20:42:16
1029
原创 ServletContext对象
ServletContext对象web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的文本应用;共享数据我在这个servlet中保存的数据,可以在另一个servlet中拿到;一个继承Servlet的类:ServletContext context = this.getServletContext();String username = "kangzhu";context.setAttribute("uname", username);
2022-03-15 16:47:02
535
原创 Servlet
ServletServlet简介Servlet就是sun公司开发动态web的一门技术sun公司在这些API中提供了一个接口:Servlet,如果你想开发一个Servlet程序,只需完成两个小步骤编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中把实现了Servlet接口的Java程序叫做,ServletHelloServlet构建一个普通的Maven项目,删除里面的src目录,并且可以在这个项目里面建立Moudle。这个空的工程就是Maven的主工程。父项
2022-03-14 21:49:14
601
在线聊天室(网页版,node.js和socket.io实现)
2022-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人