![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
java学习
ChainBlocker
这个作者很懒,什么都没留下…
展开
-
spring整合JDBC&servlet&dbutils&常用数据源
目录spring整合JDBC8. 集成servletspring集成dbutils常用数据源spring整合JDBC1. 创建一个maven web工程2. 引入依赖<properties> <spring.version>4.3.0.RELEASE</spring.version> </properties> <dependencies> <dependen原创 2020-10-28 21:46:43 · 299 阅读 · 0 评论 -
Bean的应用范围&属性的注入方式
Bean的应用范围 AbstractApplicationContext ctx= new ClassPathXmlApplicationContext("applicationContext.xml"); PersonDao personDao1=(PersonDao)ctx.getBean("personDao"); PersonDao personDao2=(PersonDao)ctx.getBean("personDao");所上述演示中,取两次相同原创 2020-10-28 21:05:45 · 110 阅读 · 0 评论 -
模拟IOC
以属性文件的方式模拟IOC1. 创建properties文件在resources目录下创建一个properties属性文件2. 编写自己的spring容器public class SpringApplicationContext { private Map<String,Object> map=new HashMap<String,Object>(); public SpringApplicationContext(String fileN原创 2020-10-28 19:14:12 · 213 阅读 · 0 评论 -
Spring入门案例
目录Spring介绍Spring入门案例1. 创建一个maven项目2. 引入依赖3. 创建spring核心配置文件4. 创建接口和实现类5. 实例化spring容器实现步骤:Spring介绍Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring入原创 2020-10-28 18:50:53 · 187 阅读 · 0 评论 -
代理模式
目录代理模式静态代理动态代理利用JDK代理实现Cglib代理实现代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。静态代理静态代理:每个目标类都有一个代理类。1. 新建一个接口package cn.offcn.dao;public interface LogDao { public void printLog(String name);}原创 2020-10-19 22:41:02 · 181 阅读 · 0 评论 -
Mybatis分页插件&注解模式
Mybatis分页插件1. 分页插件的依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version></dependency>2. 在核心配置文件中配置分页查询3. 分页代码原创 2020-10-18 18:39:43 · 1388 阅读 · 0 评论 -
Mybatis逆向工程
逆向工程1. 创建一个maven工程2. 引入依赖<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </原创 2020-10-18 17:42:24 · 100 阅读 · 0 评论 -
Mybatis延迟加载&缓存机制
目录延迟加载1. 局部延时加载2. 全局延迟加载缓存机制1. 一级缓存(Sql级别的缓存)2. 二级缓存(SqlSessionFactory级别的缓存)延迟加载在查询一对象时,它相关联的对象的查询尽量往后延时查询,延时到我在程序需要访问相关系对象时,再查询相关联对象。1. 局部延时加载在association、collection标签有一个fetchType属性,该属性的默认值为eager(立即加载) fetchType="eager",如果想用延时加载设置fetc.原创 2020-10-18 16:59:06 · 367 阅读 · 0 评论 -
Mybatis动态SQL
目录动态SQLwhere标签 if标签标签<>choose,when,otherwiseSet标签Trim标签Trim应用于where关键字Trim应用于setForeach标签批量添加批量更新批量删除动态SQL创建数据表CREATE TABLE worker( id INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(30), gender VARCHAR(6...原创 2020-10-17 20:22:04 · 194 阅读 · 0 评论 -
Mybatis多表查询
目录ResultMap实现复杂映射多对一联合查询分表查询一对多联合查询分表查询一对一联合查询分表查询多对多联合查询分表查询ResultMap实现复杂映射多对一1. E-R图2. 创建表CREATE TABLE department( d_id INT NOT NULL AUTO_INCREMENT, d_name VARCHAR(100), PRIMARY KEY(d_id));CREATE TA原创 2020-10-17 17:14:38 · 268 阅读 · 0 评论 -
自定义resultMap&sql片段
目录自定义resultMap处理表中的列与实体类属性的对应关系的解决方案SQL片段Mybatis执行流程自定义resultMap处理表中的列与实体类属性的对应关系的解决方案1. 第一种方式采用resultMap当表中的列与实体类的属性名称不一致时,使用resultMap来映射表与实体类种的属性的映射关系。resultMap中的id属性取自定名,type表示返回类型id标签用来映射主键result标签用来映射非主键属性column表示数据表中的列明.原创 2020-10-17 11:26:08 · 192 阅读 · 0 评论 -
Mybatis接口代理CURD
目录Mybatismybatis接口代理的模式开发基于接口实现CRUDmybatis多个参数处理#{}和${} 区别主键值的返回操作Mybatismybatis接口代理的模式开发1. 创建maven工程<dependencies> <!--mybatis的核心依赖--> <dependency> <groupId>org.mybatis</groupI.原创 2020-10-15 23:16:10 · 203 阅读 · 0 评论 -
单例设计模式
单例模式介绍单例模式八种方式单例设计模式:采用一定的方法保证整个系统中,某个类只能存在一个对象实例,并且该类中提供一个公有的静态方法来取得对象实例。饿汉式(静态常量)public class Single{ //饿汉式(静态变量) //1. 构造器私有化, 外部能 new private Single() { } //2.本类内部创建对象实例 private final static Singleton instance = new Sin原创 2020-10-14 22:52:25 · 179 阅读 · 0 评论 -
Mybatis入门(增删改查)
目录Mybatis介绍Mybatis的优势Mybatis入门案例创建数据表创建实体类(省略get set方法)创建核心配置文件创建一个映射xml文件把映射文件注册在mybatis核心配置文件中添加资源插件创建SqlSessionFactory对象完成CRUDMybatis介绍MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBati..原创 2020-10-13 22:47:45 · 195 阅读 · 0 评论 -
Maven的聚合
目录创建父工程创建实体类子工程创建dao子工程创建Service子工程创建控制层子工程创建servlet子工程按功能模块进行划分。每个模块都建成一个独立的工程。entity dao service controller创建父工程修改pom.xml中的packaging为pom声明依赖<dependencyManagement> <dependencies> <!-- dbutils --...原创 2020-10-12 21:28:37 · 288 阅读 · 0 评论 -
Java
APIAPI:应用程序接口。帮助文档。java.lang 使用时不用导包。导入架包将jar文件复制到项目的包下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0I4dgPBW-1598088263248)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200820192808336.png)]在jar包上右键,选择add to build path原创 2020-10-12 21:07:10 · 86 阅读 · 0 评论 -
Idear创建mavenweb项目
Idear集成maven1. 点击file-->settings2. 设置maven3. 在创建其他新工程时,默认使用的还是原来的配置,需要更改配置Idear创建maven web工程1. 创建一个maven_web工程选择Enable Auto_Import 开启自动引用2. 修改pom.xml中packaging为war3. 把web工程目录结构进行创建 webapp WEB-INF web.xml...原创 2020-10-12 20:51:00 · 833 阅读 · 0 评论 -
maven
目录maven介绍maven的安装和配置maven与eclipse集成eclipse创建maven项目maven常用指令maven依赖maven直接依赖间接依赖maven依赖scope属性maven可选依赖maven的依赖排除maven依赖冲突maven继承与统一版本管理统一版本管理maven介绍Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外.原创 2020-10-09 22:08:58 · 165 阅读 · 0 评论 -
MySQL数据库基础1
MySQL数据库介绍数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来。数据库管理系统:指一种操作和管理维护数据库的大型软件。用于对数据库服务器进行统一管理和控制,以保证数据库的安全性和完整性。数据库登录:mysql -u用户名 -p密码(本地)mysql -h主机名 -u用户名 -p密码(远程)开启&关闭服务:开启:net start mysql关闭:net stop mysqlSQL语句SQL简述SQL语句介绍结构化查询语句原创 2020-09-07 21:01:38 · 106 阅读 · 0 评论 -
常见的查找算法
常见的查找算法线性查找:package search;/**线性查找 * @author Administrator *顺序查找数列中是否包含该元素,如果找到就提前结束并返回所在的位置。 */public class SeqSearch { public static void main(String[] args) { int arr[]= {1,9,11,-1,34,89}; System.out.println(seqSearch(arr, -1)); } pub原创 2020-08-30 22:04:55 · 65 阅读 · 0 评论 -
排序(Java)
排序(Java)冒泡排序:package sort;import java.util.Arrays;/** * 冒泡排序: * 思想:通过对待排序序列从前向后(从下标较小的元素开始), 依次比较相邻元素 * 的值,若发现逆序则交换使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒 * @author Administrator * *时间复杂度:o(n²) */public class Bubble_Sorting { public static void m原创 2020-08-30 21:49:55 · 81 阅读 · 0 评论 -
二维数组模拟稀疏矩阵的存储
稀疏矩阵的模拟使用两个二维数组来模拟稀疏矩阵的存储等操作。代码:package xishuarray;import java.util.Iterator;public class SparseArray { public static void main(String[] args) {// 创建一个原始的二维数组 11*11// 0:表示没旗子 1:表示黑子 2表示篮子 int chessArr1[][] = new int[11][11]; chessArr1[1]原创 2020-08-06 21:21:31 · 261 阅读 · 0 评论 -
Java基础11
StringBuffer1. 概述线程安全的可变字符序列,字符串缓冲区。构造方法① StringBuffer() 初始容量为16的字符串缓冲区② StringBuffer(String str) 初始容量为16+str长度的字符串缓冲区③ StringBuffer(int capacity) 可以指定容量的字符串缓冲区。常用方法:① length() 表示字符串缓冲区的字符数。② capacity() 表示容量。③ append(obj) 添加(*)注意:如果超过了容原创 2020-08-22 17:27:10 · 112 阅读 · 0 评论 -
JAVA基础10
APIAPI:应用程序接口。帮助文档。java.lang 使用时不用导包。导入架包将jar文件复制到项目的包下在jar包上右键,选择add to build pathObject类object类是所有类的基类,包括数组都实现了该类的方法。该类的继承是隐藏继承 不写也继承。重写toString()的快捷键 alt+shift+s->s重写equals()的快捷键 alt+shift+s->h常用方法:getClass原创 2020-08-20 21:11:10 · 149 阅读 · 0 评论 -
Java基础09
代码块1. 放在{ }中的代码2. 分类: 局部代码块 静态代码块 构造代码块 同步代码块(线程)局部代码块1. 格式 { }2. 位置:在方法中3. 作用:限定变量的生命周期和作用于,进队{}有用 注意: 如果在局部代码块中修改了局部代码块外声明的变量, 局部代码块结束之后,并不会消除局部代码块对这个变量的影响代码:/** * 位置方法中, * 作用:限定变量的生命周期 * 注意:如果在局部代码块中修改了局部代码块外声明的变量, * 局部代码块结束之后,原创 2020-08-13 20:54:31 · 117 阅读 · 0 评论 -
Java基础08
多态1. 多态: 多种形态。 指父类引用指向不同的子类对象,由于子类对象的不同,产生不同的行为。2. 多态的类型: ① 向上转型:父类引用指向子类对象,而程序没有报错的现象,称为向上转型。 里氏代换:任何基类可以出现的地方,子类一定可以出现 ② 向下转型3. 作用: 提高代码的扩展性。 提高代码的复用性。代码:package exec;public class topic01 { public static void main(String[] args) { Lamp原创 2020-08-12 21:54:40 · 168 阅读 · 0 评论 -
Java工具类介绍
工具类1. 工具类: 可以当成工具使用的类 主要是为其他的类提供便捷使用的类,该类中大部分方法都是静态方法,并且一般位于util/utils/tools2. 帮助文档的生成3. 常用的帮助文档的注释: ① 作者author ②版本version ③从版本开始since ④param 参数 ⑤return 返回值4. Arrays:Java提供的数组工具类 ①sort(arr) 对数组进行升序排序 ②toString(arr) 返回数组的字符串表示形式...原创 2020-08-11 20:28:45 · 905 阅读 · 0 评论 -
Java 静态细节笔记
Java面向对象之静态static 静态1. static:静态,凡是static修饰的都称为 静态。2. 可以修饰方法 修饰成员变量。内存图结论: 静态成员,实例共享。(***) 非静态成员来说,只能修改自身的非静态成员,而静态成员,每个属于这个类的对象都能修改。 非静态成员属性的位置在堆中,静态成员属性的位置在方法区的静态区中。静态成员的特点1. 用static修饰的成员,由于被所有的实例共享,也称为类成员。 类属性:由static修饰的属性 类方法:由static修饰的方法原创 2020-08-11 20:08:38 · 126 阅读 · 0 评论 -
Java学生管理系统(对象数组)
学生信息管理系统1. 分析与设计1.1 功能划分欢迎界面进入欢迎界面,显示用户操作提示信息:添加学生 请按1 ,删除学生 请按2 ,修改学生 请按3 ,查询学生 请按4退出 请按5,如下图所示:添加学生信息:通过学生的姓名、年龄、学号添加学生,如下图所示删除学生信息:根据学号删除修改学生信息:根据想学号修改姓名和年龄5. 查询学生信息:查询所有学生信息6. 退出程序2. 代码实现2.1 创建Student类代码:package com;publ原创 2020-07-25 16:01:11 · 1240 阅读 · 0 评论 -
java文件操作,线程创建,方法传递
1. 文件1.File类: 既可以表示文件 还可以表示目录。 2.构造方法: File(pathname) 3.路径问题: 如果使用的是\ 需要两个表示路径。 ① 绝对路径: 从盘符开始的路径。d:\1.txt. ② 相对路径: 从某个路径开始的路径 1.txt 当没有任何修饰时,相对于项目的路径。 4.常用方法: getAbsolutePath() 获取文件的绝对路径代码:public class File类 { public static void main(String[]原创 2020-07-25 15:00:06 · 110 阅读 · 0 评论 -
Java基础07
1. 静态1.1 概述1.关键字 static 2.结论: static修饰的成员变量,所有的对象都共享该变量。并且该变量随着类的加载而加载,并且只加载一 次。代码:public class Static静态 { public static void main(String[] args) { A a=new A(); a.add(); A a1=new A(); a1.add(); } }class A{ static int a; int b原创 2020-07-22 20:03:44 · 86 阅读 · 0 评论 -
Java基础06
面向对象1. 类与对象1. 抓特征 ① 静态特征:属性。 ② 动态特征:方法。2. 创建对象 new 类名();3. 类中成员的调用 对象.属性/方法(参数)4. 类中的成员 1》属性 2》方法5. 类和对象 1》类:具有共同特征的一类事物的模板。 2》对象:具体的事物。代码:public class 描述猫 { public static void main(String[] args) { Cat cat=new Cat(); //对象.属性 ca原创 2020-07-21 19:58:40 · 70 阅读 · 0 评论 -
迷你DVD管理系统
1. 系统概述为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,包括如下功能: 新增DVD 查看DVD 删除DVD 借出DVD 归还DVD 退出系统界面如下:代码如下:package com.dvd;import java.util.Scanner;public class mnDvd { static String[] names=new String[6]; static String[] states=new String[6]; static int[]原创 2020-07-20 19:20:15 · 1732 阅读 · 0 评论 -
eclipse使用
1. eclipse使用1.1 工作区1.2 界面1.3 创建工程1. 在资源管理器空白处 右键-->new1.4 创建类文件1. 在src上右键-->new2. 包的路径 包名.包名.包名; 每一个点代表一个路径分隔符。 含义:包名\包名\包名3. 包名一般都是小写4. 包 如果没有,表示在src下,用default package表示5. 包用来管理java文件的。 6. src下放置的是java的源文件。7. bin 下放置的是java的class文原创 2020-07-20 19:06:21 · 111 阅读 · 0 评论 -
Java基础小项目练习01
双色球项目1. 项目需求双色球投注区分为红色球号码区和蓝色球号码区, 红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。 投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注。 一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖; 二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖; 三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖; 四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与原创 2020-07-18 16:46:28 · 310 阅读 · 0 评论 -
Java基础05
1. 数组1.1 概述1. 数组: 用来储存一组相同数据类型的数据容器。2. 概念: ① 数组的名称: 数组整体的名称。 ② 索引 : 从0开始的。 ③ 长度: length 数组的元素的个数。 ④ 元素: 数组的每一个个体。实质就是变量。3. 如何声明和创建数组: ① 动态初始化。 数据类型[] 数组名称=new 数据类型[长度] ② 静态初始化。 数据类型[] 数组名称=new 数据类型[]{值1,值2,值3。。} 注意: new后的数据类型[]中没有长原创 2020-07-18 16:07:59 · 54 阅读 · 0 评论 -
Java基础04
1. 变量的作用域1. 变量的作用域: 变量的使用的有效范围,离它最近的{} 范围有效2. 变量: 全局变量: 声明在方法之外。类中 局部变量: 声明在方法中的变量。3. 就近原则: 当全局变量和局部变量重名的时候,依据就近原则,局部变量优先。4. 全局变量: 当不付值时,有默认值。 整型:0 浮点型:0.0 布尔类型:false 字符类型:\u0000 String:null2. 方法1. 方法的作用: 提高代码的重用率2. 方法的声明: 权限修饰符 修饰符原创 2020-07-17 19:49:05 · 56 阅读 · 0 评论 -
Java基础03
1. 循环结构循环结构: 1. while 2. for1.1 while循环1.While循环 while(结果为true或者false的表达式){ 循环体 }2.执行原理: 反复判断循环条件,如果循环条件为true就执行,为false就退出循环。3.有限次数的循环: 控制循环条件。int c=0; while(c<10){ c++; System.out.println(c); }1.2 do-while1.格式: do{原创 2020-07-16 19:57:17 · 70 阅读 · 0 评论 -
Random(随机数)的使用
Random的使用1. 随机数 Random类2. 创建随机数类的对象 new 类名();3. 导包:import java.util.Random;4. 常用方法: nextInt(int n); 生成随机数,范围在[0,n)代码:import java.util.Random; class 随机数 { public static void main(String[] args) { //创建一个随机数的对象 Random rd=new Random(); in原创 2020-07-16 19:41:16 · 820 阅读 · 0 评论 -
键盘录入Scanner
scanner的使用1.扫描器: 将控制台上输入的内容存储到程序中,并且转换成相应的格式。 2.java提供的扫描器类: Scanner 3. 创建对象格式 : new 类名(System.in) 4.导包: 指名使用的类的位置。 1》关键字 :import 类的完全限定名 import java.util.Scanner; 5.常用方法: 格式: 对象.方法名称(参数) ① next() 返回字符串 ② nextXXX() 根据xxx类型 进行返回代码import java原创 2020-07-16 08:48:03 · 120 阅读 · 0 评论