Java学习
赵博林
众所周知,程序员都很懒...
展开
-
SpringMVC 项目实现上传和下载
前言:最近新上了一个项目,需要文档的上传和下载,之前做这个模块比较少,知识点有些忘记了,这里记录一下,防患于未然。模板如下:结构预览:pom 依赖 : 注意 ==>servlet 包不要导入 2.x 版本,不支持 request.getServletContext()方法 <dependency> <groupId>org.springframework</groupId> <artifactId>spri.原创 2021-03-18 17:27:01 · 954 阅读 · 5 评论 -
java中UUID类生成32位随机数(附加 6 位随机数)
/** * 生成32位随机数 * */public class IDUtils { public static String getId(){ return UUID.randomUUID().toString().replace("-", ""); } @Test public void test() { System.out.println(IDUtils.getId()); System.out.println(原创 2021-03-17 10:53:11 · 7989 阅读 · 3 评论 -
DBhelper工具类和JDBC接口实现类回顾
DBhelper工具类public class DBhelper { public static final String URL = "jdbc:mysql://localhost:3306/bank"; public static final String USER = "root"; public static final String PWD = "root"; public static Connection conn=null;static { try{原创 2021-03-02 17:26:15 · 318 阅读 · 0 评论 -
IDEA中filter内使用request.getSession无法调用该方法
今天在通过 IDEA 创建Filter文件时,request.getSession方法无法使用,getSession下面总有一个红色的波浪线,查了很多资料,发现filter中的request、response对象需要进行类型转换 所以需要进行如下操作: HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; 转换原创 2021-01-13 20:29:05 · 2094 阅读 · 3 评论 -
java.sql.SQLException: Cannot create...
java.sql.SQLException: Cannot create 数据库查询列表无法转换到java对象异常信息 : java.sql.SQLException: Cannot create XXX出现该状况的原因是:XXXdomian类 (实体类) 中没有提供无参构造器解决办法:在domian类中提供无参构造器...原创 2021-01-09 14:10:12 · 853 阅读 · 3 评论 -
Cannot delete or update a parent row: a foreign key constraint fails(解决外键关联无法删除)
原因 :关联生成的强制约束问题,在删除的时候回检查表之间的关联关系,从而导致无法删除。如果强行删除表,就会报错。解决:关闭外键约束,执行删除操作,然后再开启外键约束示例代码:@Override public void deleteById(int id) { QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()); try { // 1.解除外键关原创 2021-01-04 19:13:37 · 2675 阅读 · 5 评论 -
万能模板(封装) BaseMapper,BaseService,BaseController
目录结构(后期利用工具也能实现,建议前期自己编写,储存用作模板)创建BaseMapper接口package com.liu.base;import org.apache.ibatis.annotations.Param;import java.io.Serializable;import java.util.List;import java.util.Map;/** * @author root * @create 2020-12-21 15:28 * 封装一些map..转载 2020-12-26 08:47:33 · 2078 阅读 · 3 评论 -
Filter基础及应用
1. Filter 简介Servlet 中的 Filter, 翻译成中文是过滤器, 实现了javax.servlet.Filter接口的服务器端程序,主要的用途 :自动登录统一设置编码格式访问权限控制敏感字符过滤等2. Filter 基本使用1. 实现 Filter 接口的自定义类,2. 使用注解 @WebFilter 对filter定义2. 选择 new ==> create new Filter ==> 生成如下代码:3. 创建完成后默认代码,可以看到,Chars原创 2020-12-23 21:44:46 · 285 阅读 · 5 评论 -
c3p0数据库连接池的配置与使用
什么是数据库连接池? 用我自己的话理解,相当于在一个池子里获取到一些数据库连接对象, 随拿随用,用完不是丢掉,而是放回池子,实现了数据库操作对象的复用。 以前都是获取完一个数据库操作对象,用完就调用 .close()方法释放了资源, 下次用的时候,必须重新请求获取,频繁的请求和丢弃,造成程序运行效率低下。最常用的数据库连接池有哪些? - c3p0(入门级,也是最常用的数据库连接池技术) - Druid(阿里巴巴, 目前最 NB 的数据库连接池技术)使用 c3p0 ..原创 2020-12-19 23:35:34 · 757 阅读 · 3 评论 -
Cookie 核心知识
1. cookie 基础1. 会话技术(共享数据) (一次请求 ,一次响应,是一次连接) (多次连接 是会话,包括多次请求和响应) http是无状态的,无法多次请求会话,引入cookie2. 共享数据方式: > 存储在服务器 server 的是 Session > 存储在客户端 client 的是 Cookie3. Cookie 是一门会话技术, 数据保存在客户端(浏览器)的会话技术 > cookie数据封装在请求头里,和新数据一起原创 2020-12-17 22:24:54 · 180 阅读 · 2 评论 -
HTTP 状态码详解
HTTP 状态码详解1、三至七种最基本的响应代码200(“OK”)一切正常。实体主体中的文档(若存在的话)是某资源的表示。400(“Bad Request”)客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题。500(“Internal Server Error”)服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。301(“Moved Permanently”原创 2020-12-16 22:00:47 · 289 阅读 · 3 评论 -
Servlet 中的注解和 http 总结(二)
今天太累了明天把博客补上,先签个到再说。原创 2020-12-11 23:40:54 · 249 阅读 · 3 评论 -
JAVA Web学习路线(思维导图)
java web 学习路线分享。原创 2020-12-12 22:01:28 · 680 阅读 · 6 评论 -
Servlet 如何创建 JSP 登陆页面?
需要新建一个 servlet 去继承 HttpServlet ,并重写 doPost()方法,doGet方法可以不写,因为登录要用post密文方法传值。代码如下@WebServlet("/login")public class Servlet01 extends HttpServlet { // 无参构造方法 public Servlet01(){ System.out.println("Servlet01 对象被创建"); } protect.原创 2020-12-10 15:34:10 · 284 阅读 · 3 评论 -
Servlet 入门(一)
servlet 学习servlet 规范介绍:servlet规范来自于javaEE规范中的一种作用:在servlet规范中, 制定 [动态资源文件]开发步骤在servlet规范中,制定 HTTP 服务器调动动态资源文件规则在servlet规范中, 指定Http服务器管理动态资源实例对象规则servlet 接口实现类:servlet 接口来自于servlet规范下的一个接口, 这个接口存在http服务器,提供jar包Tomcat 服务器下lib文件内有一个serv原创 2020-12-09 20:22:49 · 246 阅读 · 3 评论 -
Java面向对象总结(流程图)
JAVA OOP 面向对象总结:流程图原创 2020-12-08 18:59:45 · 1116 阅读 · 5 评论 -
JDBC:批量处理(Statement方法)
1. 什么是批处理?批量处理执行SQL语句,调用数据库一次来提交多组数据,一次执行完成与数据库之间的交互。2. 如何实现批处理?不使用 JDBC 驱动程序来实现此功能。应使用 DatabaseMetaData.supportsBatchUpdates() 方法来确定目标数据库是否支持批量更新处理。如果 JDBC 驱动程序支持此功能,该方法将返回 true。Statement,PreparedStatement 和 CallableStatement的addBatch() 方法用于将单个语原创 2020-12-07 20:34:37 · 1369 阅读 · 3 评论 -
JDBC: 如何使用工具类实现模糊查询?
1. 目标:测试 DButil 功能模糊查询 功能如何实现?例如: 查询 userInfo 表里, 用户第二个字母为 a 的用户?(数据表如下:可以自定义查询的表和功能,如姓张的所有用户)2. 创建 util 工具类(封装)把 JDBC 中的 1. 注册驱动,2. 连接数据库,3. 释放资源,全部封装进 DButil 工具类里。public class DButil { /* * 1. 工具类中的构造方法都是私有的 * 2. 工具类中的方法都是静态的,不原创 2020-12-06 22:29:46 · 536 阅读 · 2 评论 -
向 ArrayList 中添加了几个对象,直接打印列表后结果是对象地址呢?如何显示内容?
问题: ArrayList 中添加对象,打印出来是地址值,无法显示正常可读内容。解决办法:重写 toString 方法,迭代for循环遍历实例 :1. 创建一个List,在List 中增加三个工人,基本信息如下表: 2. 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资33003. 删除wang5 的信息4. 利用for 循环遍历,打印List 中所有工人的信息姓名年龄工资zhang3183000li42.原创 2020-12-02 16:40:17 · 6233 阅读 · 15 评论 -
Java集合练习(一)
1.如何将数组转换为集合?使用 Util 类的 Arrays.asList(name) 方法将数组转换为集合。public class Array01 { public static void main(String args[]) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("原创 2020-12-01 19:44:40 · 465 阅读 · 10 评论 -
Java 中IO流详解(附实例代码/面试题)
Java I/O流详解前言一、I/O流是什么?二、IO流分类:1. 流程图: io流对象2. io流的优缺点:3. io 流Java中用途有哪些?三、一些 io 实例四、面试题:前言IO流大家可能不太熟悉,我简单整理了一下常用IO流基本用法,并且提供了一些练习题和面试题,大家可以抽空看看。一、I/O流是什么?I/O流中的 I 代表 input(输入) ,O代表 output(输出) 。流的定义: IO流就是以流的方式进行输入输出。流(stream)的概念源于UNIX中管道(pipe)的概原创 2020-11-30 19:06:52 · 997 阅读 · 3 评论 -
Java基础知识笔记总结之异常(三)
1. 什么是异常异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。2.如何捕获异常使用 try 和 catch 关键字可以捕获异常。try{ // 程序代码}catch(ExceptionName e){ //Catch 块}Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。3. 实例1:捕获异常public class ExcepTest{ public原创 2020-11-28 12:23:28 · 211 阅读 · 2 评论 -
Java基础知识笔记总结之包装类(三)
本文目标 : Java包装类:1.理解String类,以及字符不变性2.熟练使用StringBuffer类3.熟练使用Random类4.掌握Date类5.熟练使用Calendar类6.掌握SimpleDateFormat类用法7.了解Math最终类// 1.理解String类,以及字符不变性public static void main(String[] args) {// integer是int类型的基本包装类型Integer obj = new Integer("-0.原创 2020-11-26 17:20:01 · 221 阅读 · 1 评论 -
Java中接口的总结(包含实例代码)
面相接口编程是一个很重要的思想,涉及到设计模式中的简单工厂模式什么是接口?一种标准规范,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口的特点有哪些?接口可以多继承接口的方法声明必须是 public abstract, 即便不写默认也是接口里面不能包含方法具体实现类继承接口必须实现接口里申明的全部方法,除非该类是抽象类类里面可以声明 public static final 修饰的变量接口不能被实例化,但是可.原创 2020-11-25 20:44:11 · 1577 阅读 · 3 评论 -
Java笔记总结分享之继承和多态(二)
前言: 类的继承和多态是解放程序员双手的优秀方法,一定要掌握!什么是继承?已有父类创建子类的一种机制为什么要继承?减少代码冗余方便后期更新代码易于扩展如何继承(extends关键字)?class 父类 {} class 子类 extends 父类 {}需要注意的是 Java 不支持多继承,但支持多重继承。(即只能继承于一个父类或同时继承父亲和爷爷,但不能同时有多个爹)继承的特点:子类拥有父类非 private 的所有属性和方法。.原创 2020-11-24 20:40:39 · 254 阅读 · 4 评论 -
Java中的class类和对象总结(思维导图)
概念: 对象是一个实际的个体 , class 类是具有相同属性的一类个体的集合思维导图:2. 定义声明对象的两种方法:public class T1{public static void main{ // 第一种 Person jack; jack = new Person(); ----------------------- //第二种 Person jack = new Person(); }}定义类对象(方法):public class Perso.原创 2020-11-23 21:54:59 · 4128 阅读 · 14 评论 -
Java中查找数组是否包含输入的值(原生/二分法)
知识点: 原生方法范围广,可以是字符串,数字等,而二分法必须是有序数的数列。实例: 给定二维数组: int [ ] [ ] ary = {{1,2,3},{4,5,6}} 键盘输入一个值, 查询数组是否含有该值?原生方法:public static void main(String[] args) { // 定义二维数组 //键盘输入数字 Scanner scanner = new Scanner(System.in); /.原创 2020-11-21 11:20:12 · 1225 阅读 · 16 评论 -
Java中冒泡排序的原生实现方式(正序和逆序)
手写冒泡排序,是一道经典的面试题,每个java人都必须掌握。需求: 给定数组,ary=[2,4,5,3,1], 如何升序或逆序排列?提示: Arrays.sort只能升序排列, 先用双重for循环,原生方法实现.public class T02 { public static void main(String[] args) { //冒泡升序 int [] ary = {1,4,5,6,7,8,3,2}; for (int i = 0.原创 2020-11-20 21:39:31 · 960 阅读 · 17 评论 -
Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容。需求 : 分别写出上下左右,对应四个角的乘法表。思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式。代码如下:public class Demo { public static void main(String[] args) { for (int i = 1; i <=5 ; i++) { for (int j = 1; j <=i; j++) { .原创 2020-11-19 15:19:56 · 8997 阅读 · 18 评论 -
Java的流程控制与循环语句(最详细)
流程控制语句—顺序、选择、循环概述在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。在清楚每条语句的执行流程的前提下,才能通过控制语句的执行顺序来实现我们要完成的功能。顺序控制语句2.1概述是程序中最简单的流程控制,按照代码执行的先后顺序,依次执行,程序中的大多数代码都是这样执行的。2.2顺序结构流程图2.3代码示例public class OrderDemo01 { public static void原创 2020-11-18 20:54:46 · 851 阅读 · 5 评论 -
Java中2的n次方的替换方法(无需数学公式)
前言: Java中2的n次方,输入2^无效, 没学习数学公式时,不好直接得出。需求:一张纸0.001米,对折多少次能超过珠穆朗玛峰8848的高度?分析: 每次折叠,厚度都是原来的2倍,相当于2的N次方。代码如下:public class T12 { public static void main(String[] args) { // 第一次对折高度为h1, // 对折一次后高度h2, int .原创 2020-11-18 20:17:32 · 2692 阅读 · 7 评论 -
Java知识点总结(一)
1.强制类型转换两条路线(从小到大):byte——short——int——long——float——doublechar——int——long——float——doublea. 小转大public class Test03 { public static void main(String[] args) { // 强制类型转换,小转大 int a = 10; double b = a; System.out.println(b原创 2020-11-17 20:57:41 · 776 阅读 · 4 评论 -
Java中交换a和b值的三种方法
方法1:定义中间变量法// 最容易想到的,定义一个 k ,用其交换。public class Test04 { public static void main(String[] args) { // 互换ab值 int a = 1; int b = 2; System.out.println("初始值a是"+a); System.out.println("初始值b是"+b); int原创 2020-11-17 15:03:56 · 8250 阅读 · 3 评论 -
Java 中 JDK8 的安装和环境配置
1. Java 中 JDK8 的安装和环境配置a、下载JDK81.直接官网下载:http://www.oracle.com/(慢)2.百度网盘链接: https://pan.baidu.com/s/1Mq14G0PIwYCUb5MrwPwSSw (推荐)提取码: fp74 b、双击exe文件,一路next,推荐安装路径更改为D盘,D:\Program Files\Java2. 重点: path 环境变量的配置用户变量位:D:\Program Files\Java\jdk1.8.原创 2020-11-16 19:32:03 · 761 阅读 · 1 评论