自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 mybatis一对多

dao层的映射配置文件。

2023-03-17 09:30:00 153 1

原创 SpringMVC自定义处理多种日期格式的格式转换器

else if (source.contains("年") && source.contains("月") && source.contains("日")) {df = new SimpleDateFormat("yyyy年MM月dd日");throw new RuntimeException("数据类型转换出现错误");throw new RuntimeException("请您传入数据");* String source 传入进来字符串。* 把字符串转换日期。// 把字符串转换日期。

2023-03-07 19:27:11 421

原创 web.xml中配置解决中文乱码的过滤器

-配置解决中文乱码的过滤器-->

2023-03-07 18:07:03 724

原创 idea常用的快捷键

Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。15.Ctrl+Alt+V 可以引入变量。16.Ctrl+Alt+T可以把代码包在一块内,例如try/catch。Ctrl+Alt+ left/right 返回至上次浏览的位置。Ctrl+E或者Alt+Shift+C 最近更改的代码。Ctrl+Shift+Up/Down 代码向上/下移动。Ctrl+Shift+Alt+N 查找类中的方法或变量。

2023-03-07 10:24:13 1230

原创 【无标题】

这是一个外部引入Jar包的注解,是Junit单元测试包下一个注解,可以用来进行单元测试,即程序可以不调用main方法原地进行运行测试。:用来抑制编译时的警告信息,如果你想用编译运行时存在警告的元素时,但是又不想看到警告信息(和乱码兄弟一样看多了难受,总觉得自己的东西有问题)这时可以使用镇压警告注解。@Repeatable:一半的注解都不能重复标注,如果是实现了Repeatable注解的目标注解可以重复应用标注。注解用来修饰程序的元素(包 / 类 / 方法 / 字段等),但不会对被修饰的对象有直接的影响。

2023-03-03 21:49:40 493

原创 MySQL的动态SQL语句

SELECT * FROM USERS WHERE username LIKE '%张%' AND (id =10 OR id =89 OR id=16)注意:标签的 test 属性中写的是对象的属性名,如果是包装类的对象要使用 OGNL 表达式的写法。Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的。collection:代表要遍历的集合元素,注意编写时不要写#{}item:代表遍历集合的每个元素,生成的变量名。持久层 Dao 映射配置。

2023-03-03 10:14:44 542

原创 Mybatis中编写dao实现类的使用

SqlMapConfig.xml配置文件。持久层 Dao 实现类。持久层 Dao 接口。

2023-02-22 11:55:25 168 1

原创 mybatis中配置连接池的原理介绍分析

UNPOOLED 采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。POOLED 采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现。主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。在这三种数据源中,我们一般采用的是 POOLED 数据源(很多时候我们所说的数据源就是为了更好的管理数据。2、mybatis中的连接池。

2023-02-22 11:32:53 522

原创 properties标签typeAliases标签和package标签讲解--及前文补充

- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->--使用typeAliases配置别名,它只能配置domain中类的别名 -->--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->--配置事务的类型-->-- 数据库连接池-->--配置 的环境-->--mybatis的主配置文件-->

2023-01-28 12:07:59 810

原创 Mybatis 的输出结果封装小细节

需要注意的是,它和 parameterType 一样,如果注册过类型别名的,可以直接使用别名。型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。同时,当是实体类名称是,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法。resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型。type 属性:指定实体类的全限定类名。运行后,大部分值为空;

2023-01-28 11:47:11 539

原创 Mybatis 的参数深入 --parameterType 配置参数.注意事项

究其原因,是 mybaits 在加载时已经把常用的数据类型注册了别名,从而我们在使用时可以不写包名,而我们的是实体类并没有注册别名,所以必须写全限定类名。在今天课程的最后一个章节中将讲解如何注册实体类。在 mybatis 的官方文档的说明(第 19 页)实体类类型,目前我们只能使用全限定类名。

2023-01-27 12:00:03 184

原创 Mybatis 与 JDBC 编程的比较 及#{}与${}的区别

{}可以有效防止 sql 注入。通过${}可以将 parameterType 传入的内容拼接在 sql 中且不进行 jdbc 类型转换, ${}可以接收简。2.Sql 语句写在代码中造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。3.向 sql 语句传参数麻烦,因为 sql 语句的 where 条件不一定,可能多也可能少,占位符需要和参数对应。单类型值或 pojo 属性值,如果 parameterType 传输单个简单类型值,${}括号中只能是 value。

2023-01-25 11:59:40 1079

原创 基于代理 Dao 实现 CRUD 操作 及 Mybatis 的参数深入 与 Mybatis 的输出结果封装

3、SQL 语句的配置标签,,,的 id 属性必须和持久层接口的方法名相同。2、持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名。由于我们保存方法的参数是 一个 User 对象,此处要写 User 对象中的属性名称。代表参数的类型,因为我们要传入的是一个类的对象,所以类型就写类的全名称。具体的数据是由#{}里面的内容决定的。具体的数据是由#{}里面的内容决定的。在持久层接口中添加【各种】方法。

2023-01-25 10:56:53 1003

原创 Mybatis 框架开发的准备

从百度中“mybatis download”可以下载最新的 Mybatis 开发包。我们所使用的 Mybatis 版本是 3.2.7 版本。下载相关的 jar 包或 maven 开发的坐标。编写持久层接口的映射文件 IUserDao.xml。必须以持久层接口名称命名文件名,扩展名是.xml。编写 SqlMapConfig.xml 配置文件。进入选择语言的界面,进入中文版本的开发文档。创建 mybatis01 的工程。编写持久层接口 IUserDao。必须和持久层接口在相同的包中。编写 User 实体类。

2023-01-20 11:32:39 1369

原创 数据库的连接

System.out.println("生日:"+birthday);System.out.print("姓名:"+name+"----");System.out.print("性别:"+sex+"----");System.out.print("编号:"+id+"----");System.out.print("姓名:"+name+"----");System.out.print("性别:"+sex+"----");System.out.print("编号:"+id+"----");

2022-11-10 10:04:33 174

原创 Java接口的私有方法使用4

我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。System.out.println("默认方法1");System.out.println("默认方法2");privatestatic返回值类型方法名称(参数列表){private返回值类型方法名称(参数列表){1.普通私有方法,解决多个默认方法之间重复代码问题。2.静态私有方法,解决多个静态方法之间重复代码问题。从Java9开始,接口当中允许定义私有方法。...

2022-07-18 21:24:49 97

原创 JAVA接口的私有方法使用3

//接口的私有方法使用问题描述:我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。解决方案:从Java 9开始,接口当中允许定义私有方法。1.普通私有方法,解决多个默认方法之间重复代码问题格式:private 返回值类型 方法名称(参数列表) {方法体}2.静态私有方法,解决多个静态方法之间重复代码问题格式:private static 返回值类型 方法...

2022-07-17 22:21:20 96

原创 JAVA接口的私有方法使用2

//接口的私有方法使用问题描述:我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。解决方案:从Java 9开始,接口当中允许定义私有方法。1.普通私有方法,解决多个默认方法之间重复代码问题格式:private 返回值类型 方法名称(参数列表) {方法体}2.静态私有方法,解决多个静态方法之间重复代码问题格式:private static 返回值类型 方法...

2022-07-16 21:41:03 70

原创 JAVA接口的私有方法使用

//接口的私有方法使用问题描述:我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。解决方案:从Java 9开始,接口当中允许定义私有方法。1.普通私有方法,解决多个默认方法之间重复代码问题格式:private 返回值类型 方法名称(参数列表) { 方法体}2.静态私有方法,解决多个静态方法之间重复代码问题格式:private static 返回值类型 方...

2022-07-15 23:51:36 638

原创 Java接口的私有方法定义

我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。System.out.println("默认方法1");System.out.println("默认方法2");privatestatic返回值类型方法名称(参数列表){private返回值类型方法名称(参数列表){1.普通私有方法,解决多个默认方法之间重复代码问题。2.静态私有方法,解决多个静态方法之间重复代码问题。从Java9开始,接口当中允许定义私有方法。...

2022-07-14 23:33:11 245

原创 Java接口的静态方法定义及使用

// 接口的静态方法定义及使用从Java 8开始,接口当中允许定义静态方法。格式:public static 返回值类型方法名称(参数列表){ 方法体}提示:就是将abstract或者default换成static即可,带上方法体。public interface MyInterfaceStatic{ public static void methodstatic() { System.out.println("这是接口的静态方法!");

2022-07-13 22:53:48 1600

原创 Java接口的默认方法定义

// 接口的默认方法定义从Java8开始,接口里允许定义默认方法。格式:public default 返回值类型方法名称(参数列表){ 方法体}备注:接口当中的默认方法,可以解决接口升级的问题。public interface MyInterfaceDefault{ //抽象方法 public abstract void methodAbs(); //新添加了一个抽象方法 public abstract void meth

2022-07-12 22:48:47 754

原创 Java接口的抽象方法使用

接口使用步骤:1.接口不能直接使用,必须有一个“实现类”来“实现”该接口。格式:public class 实现类名称implements接口名称{ // ...}2.接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。实现:去掉abstract关键字,加上方法体大括号。3.创建实现类的对象,进行使用。注意事项:如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。public class Demo01Interface{ public

2022-07-11 23:37:26 879

原创 Java接口的抽象方法定义

// 接口的抽象方法定义在任何版本的Java中,接口都能定义抽象方法。格式:public abstract 返回值类型方法名称(参数列表);注意事项:1.接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract这两个关键字修饰符,可以选择性地省略。3.,方法的三要素,可以随意定义。public interface MyInterfaceAbstract{//这是一个抽象方法public abstract void methodAbs1();//这也是抽象方法abs

2022-07-10 22:37:07 2057

原创 Java接口的定义基本格式

// 接口的定义基本格式接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。如何定义一个接口的格式;public interface 接口名称{ // 接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:java-->class。如果是Java7,那么接口中可以包含的内容有:1.常量2.抽象方法如果是Java 8,还可以额外包含有:3.默认方法4.静态方法如果是JavaT9,还可以额外包含有:5.私有方法pu

2022-07-09 22:59:53 369

原创 Java 发红包案例_实现

// 发红包案例_实现public class User { private String name; // 姓名 private int money;// 余额,也就是当前用户拥有的钱数 public User() { } public User(String name, int money){ this.name = name; this.money=money;

2022-07-08 21:38:47 175

原创 Java的发红包案例_分析

// 发红包案例_分析发红包的逻辑,三要素:返回值类型:ArrayList方法名称: send 参数列表: 1.总共发多少钱 int totalMoney 2.分成多少份 int count public ArrayList send(int totalMoneyint count){// ….}收红包的逻辑,三要素:返回值类型:void方法名称:receive参数列表:ArrayListpublic void receive(Array...

2022-07-07 22:11:16 121

原创 Java 抽象方法和抽象类的注意事项

// 抽象方法和抽象类的注意事项关于抽象类的使用,以下为语法上要注意的细节1.抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类

2022-07-06 22:27:42 495

原创 Java抽象方法和抽象类的格式及使用方法

// 抽象方法和抽象类的格式// 抽象方法和抽象类的使用方法抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束。抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。如何使用抽象类和抽象方法:1.不能直接创建new抽象类对象。2.必须用一个子类来继承抽象父类。3.子类必须覆盖重写抽象父类当中所有的抽象方法。覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。4.创建子类对象进行使用。public abstract

2022-07-05 22:51:29 1870

原创 Java的 super与this关键字图解

// super与this关键字图解public class Fu { int num = 10; public void method() { System.out.println("父类方法"); }}public class Zi extends Fu { int num = 20; @Override public void method() { super.method(); // 调用了父类方法

2022-07-04 22:24:07 133

原创 Java的this关键字的三种用法

// this关键字的三种用法super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种:1.在本类的成员方法中,访问本类的成员变量。2.在本类的成员方法中,访问本类的另一个成员方法。3.在本类的构造方法中,访问本类的另一个构造方法。在第三种用法当中要注意:A.this(....)调用也必须是构造方法的第一个语句,唯一一个。B.super和this两种构造调用,不能同时使用。public class Fu { int num = 30;}public class Z

2022-07-03 23:11:40 182

原创 Java的super关键字的三种用法

// super关键字的三种用法super关键字的用法有三种:1.在子类的成员方法中,访问父类的成员变量。2.在子类的成员方法中,访问父类的成员方法。3.在子类的构造方法中,访问父类的构造方法。public class Fu { int num = 10; public void method() { System.out.println("父类方法"); }}public class Zi extends Fu { int num = 20;

2022-07-02 21:57:12 358

原创 Java继承中构造方法的访问特点

// 继承中构造方法的访问特点继承关系中,父子类构造方法的访问特点:1.子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。2.子类构造可以通过super关键字来调用父类重载构造。3.super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。总结:子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。public class Demo01C

2022-07-01 21:12:00 111

原创 Java继承中方法的覆盖重写~应用

// 继承中方法的覆盖重写~应用// 本来的老款手机public class Phone { public void call() { System.out.println("打电话"); } public void send() { System.out.println("发短信"); } public void show() { System.out.println("显示号码"); }}// 定

2022-06-30 21:19:03 52

原创 Java继承中方法的覆盖重写~注意事项

// 继承中方法的覆盖重写~注意事项方法覆盖重写的注意事项:1.必须保证父子类之间方法的名称相同,参数列表也相同。@Override: 写在方法前面,用来检测是不是有效的正确覆盖重写。这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。2.子类方法的返回值必须【小于,等于】父类方法的返回值范围。小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。3.子类方法的权限必须【大于,等于】父类方法的权限修饰符。小扩展提

2022-06-29 21:40:25 140

原创 Java继承中成员方法的访问特点与覆盖重写~概念

// 继承中成员方法的访问特点 // 继承中方法的覆盖重写~概念在父子类的继承关系当中,创建子类对象,访问成员方法的规则: 创建的对象是哪个,就优先用哪个,如果没有则向上找。注意事项:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。重写(Override)概念:在继承关系当中,方法的名称一样,参数列表也一样。重写(Override):方法的名称一样,参数列表【也一样】。覆盖、覆写。重载(Overload):方法的名称一样,参数列表【不一样】。方法的覆盖重写特点:创

2022-06-28 22:36:13 131

原创 Java区分子类方法中重名的三种变量

// 区分子类方法中重名的三种变量局部变量: 直接写成员变量名本类的成员变量: this.成员变量名父类的成员变量: super.成员变量名public class Demo01ExtendsField { public static void main(String[] args) { Zi zi = new Zi(); zi.method(); }}public class Fu { int num = 10;}publi

2022-06-27 22:15:11 170

原创 Java继承中成员变量的访问特点

// 继承中成员变量的访问特点在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:直接通过子类对象访问成员变量: 等号左边是哪个,就优先用哪个,没有则向上找。间接通过成员方法访问成员变量: 该方法属于哪个,就优先用哪个,没有则向上找。public class Fu { int numFu = 10; int num = 100; public void methodFu() { // 使用的是本类当中的,不会向下找子类的

2022-06-26 22:09:31 101

原创 Java继承的格式

// 继承的格式在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是UP主,那么“UP主就是一个员工”。关系:is-a。定义父类的格式:(一个普通的类定义)public class 父类名称 { // ...}定义子类的格式:public class 子类名称 extends 父类名称 { // ...}public class Demo01Extends { public static void main(String[] arg

2022-06-25 20:55:12 342

原创 Java的Math练习:小学数学真题

// Math练习:小学数学真题题目:计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?分析:1.既然已经确定了范围,for循环2.起点位置-10.8应该转换成为-10,两种方法: 2.1可以使用Math.ceil方法,向上(向正方向)取整 2.2强制成为int,自动舍弃所有小数位3.每一个数字都是整数,所以步进表达式应该是num++,这样每次都是+1的。4.如何拿到绝对值:Math.abs方法。5.一旦发现了一个数字,需要让计数器++进行统计。备注:如果

2022-06-24 22:35:19 250

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除