java
静@宁静致远
这个作者很懒,什么都没留下…
展开
-
mybaits的映射关系
mybaits的映射关系主要是围绕一个resultmap的标签而展开讨论的。GoodsDao.xml <resultMap id="BaseResultMap" type="com.qianfeng.study.pojo.entity.Goods"> <id column="goods_id" jdbcType="BIGINT" property="goodsId"/> <result column="title" jdbcType="原创 2020-07-22 15:10:54 · 107 阅读 · 0 评论 -
mybatis中的#{}和${}的区别
mybatis中的#{}和${}的区别#{}是直接取值,取到的值会加上单引号标识它在sql中,接续出来后,是一个值例:userId=1select * from user where user_id=#{userId}解析成: select * from user where user_id=’1’${}也是取值,但是取出来的值,不会加上单引号,解析出阿来后,将会是sql语句中的一部分。select * from user where user_id=${userId}解析成: select原创 2020-07-22 14:35:17 · 181 阅读 · 0 评论 -
多表查询,在mybatis的配置
多表查询,在mybatis的配置一对一:在resultMap标签里使用assciation标签来关联数据库一对多:在resultMap标签里边用的是collection标签来关联查询多对多:没有在resultMap里边配置,而是直接使用子查询来实现的,先从关系表里面找出对应的id,然后在根据id批量进行查询优化:学习mysql优化之后,用单表分布查询来代替多表查询,可以提升查询的性能和优化sql语句的维护...原创 2020-07-22 14:19:56 · 101 阅读 · 0 评论 -
MyBatis 学习
MyBatis 学习一、 什么是mybaitsmybatis是一款性能持久化工具,它的性能接近原生,主要特点是支持定制化的sql语句,普通的增删改查语句根本不用写(很多框架都能实现)是基于sql语句的一种框架mybatis 的SQL语句灵活,能够完成很复杂的查询语句二、 mybatis优点性能优秀,接近原生的JDBCsql语句灵活结果集映射灵活三、 Mybaits配置文件3.1 分层3.2 mybatis的执行流程体系结构mybatis配置文件,包括Mybatis全原创 2020-07-21 20:35:07 · 150 阅读 · 0 评论 -
Maven的使用
Maven的使用pom.xml jar依赖添加结构 <dependencies> <dependency></dependency> </dependencies>例·:mysql依赖添加原创 2020-07-20 19:40:26 · 55 阅读 · 0 评论 -
反射封装JDBC查询
package com.qf.utils;import java.lang.reflect.Method;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.util.ArrayList;import java.util.List;public class DataUtils { /** * 返回所有数据 */ public static <T> Li原创 2020-06-19 16:08:53 · 125 阅读 · 0 评论 -
Java JDBC 简单插入
package com.qf.utils;import com.mysql.jdbc.Driver;import com.qf.domain.User1;import javax.swing.*;import java.sql.*;public class TestInsert { public static void main(String[] args) { try { Driver d = new Driver();原创 2020-06-19 16:08:17 · 276 阅读 · 0 评论 -
Java JDBC DML DQL封装方法
// 统一来执行DML语句; public static boolean executeDML(String sql, Object... params) throws SQLException { // 获取连接 Connection connection = DBUtils.getConnection(); // 获取我们的预处理对象 PreparedStatement ps = connection.prepareStatement(sql); // 完成了设置参数的过程原创 2020-06-19 16:06:18 · 211 阅读 · 0 评论 -
数据库的学习和应用
数据库1.SQL语言分类数据查询语言DQL:select、where、order by、group by、having数据定义语言DDL:create、alter、drop数据操作语言DML:insert、update、delete事务处理语言TPL:commit、rollback数据控制语言DCL:grant、revoke数据查询语言DQL(Data Query Lanuage)-- 查询表中所有信息,开发人员避免使用,效率低下select * from 表名;-- 投影查询,查原创 2020-06-18 20:38:57 · 231 阅读 · 0 评论 -
String工具包,赋值粘贴可直接使用
package com.qfedu.tools;public class StringUtils { /** * 获得字符串长度 * @param str 给定字符串 * @return */ public static int getLength( String str ) { return str.length(); } /** * 截取一段区间字符串 * @param str * @param begin * @param end * @r原创 2020-06-17 09:40:27 · 131 阅读 · 0 评论 -
java 单例模式
单例模式只允许创建一个该类的对象饿汉式public class Singleton { //声明该类的唯一实例 private static Singleton instance = new Singleton(); private Singleton(){ } // 对外提供访问方法 public static Singleton getInstance(){ return instance; }}class原创 2020-06-17 09:20:09 · 82 阅读 · 0 评论 -
java 工厂模式的应用
开发中有一个非常重要的原则“开闭原则”,对扩展开放,对扩展开放,对修改关闭工厂模式主要负责对象创建的问题可通过反射进行工厂模式的设计,完成动态的对象创建package ch3;//产品家族abstract class Car{ private String brand; public Car() { } public Car(String brand) { this.brand = brand; } public String getBrand() { return b.原创 2020-06-17 09:16:43 · 429 阅读 · 0 评论 -
JDK8新特性
JDK8新特性一、Java8概述Java8(又称JDK1.8)是java语言开发的一个主要版本Oracle公司于2014年3月18日发布Java8.支持Lambda表达式函数式接口新的Stream API新的日期API其他特性二、Lambda表达式Lambda表达式:特殊的匿名内部类,语法简洁Lambda表达式运行吧函数作为一个方法的参数(函数作为方法参数传递),把代码像数据一样传递基本语法:<函数时接口><变量名>=(参数1,参数2...)-&g原创 2020-06-12 19:54:12 · 157 阅读 · 0 评论 -
网络编程笔记
网络编程一、基础概念概念基于网络协议,实现网络程序开发,用于多台计算机互联网通信的网络编程模式,网络应用程序区别与普通程序,网络程序需要有网络环境才可以运行,常见的如QQ,迅雷……通信模型OIS7曾模型(概念模型)TCP/IP通信模型(广泛使用)IP地址协议网络地址协议,用于标识计算机的位置,是计算机在网络环境中的身份标识端口同一台计算机,数据类型的通道,不同的应用通过绑定不同的端口来,来收发特定端口的数据范围0~65535UPL统一资源定位符,用于定原创 2020-06-12 00:54:49 · 177 阅读 · 0 评论 -
多线程应用笔记
多线程一、什么是线程线程是一个顺序执行流,或者叫程序的一条执行路径,是CPU调度的最基本单元。进程: 一个程序运行会产生至少一个进程,进程是临时的,有创建有撤销,是操作系统调度的最小单元。线程: 是一种轻量级线程,一个进程至少一个线程。现代操作系统 几乎都是采用分时间 抢占策略,一个线程通过获得cpu时间片段执行线程中的逻辑代码。二、运行数据线程栈:存储线程需使用的局部变量,每个线程都有自己独立的栈空间堆空间: 存储线程需使用的对象,多个线程可以共享堆中的对象程序计数器:维护程序原创 2020-06-09 18:40:27 · 84 阅读 · 0 评论 -
判断数字是否为质数
public static boolean isPrime(int number){ if(number<2){//若此数小于2,则不是质数 return false; } //从1-number本身循环取余计算 for(int i=1;i<number;i++){ if(number % i == 0){//余数为0,能整除 if(number ==.原创 2020-06-08 22:35:17 · 139 阅读 · 0 评论 -
判断字符串是否为数字
判断字符串是否为数字Character.isDigit(); public static int turnInt(String str){ for (int i = 0; i <= str.length(); i++){ if (Character.isDigit(str.charAt(i))){ int num = Integer.parseInt(str); } } return 0;原创 2020-06-06 12:01:10 · 172 阅读 · 0 评论 -
I/O框架
1Java I/O 概览1.1 文件系统和File类Java中的File类。在java.io包中。对于一个File对象来说,它能够代表硬盘上的一个群文件或文件夹。File对象不仅能代表一个文件夹。还能代表一个文件夹File对象是“代表”一个文件或者文件夹File 类的构造方法:File(String pathname):利用字符串作为参数,表示一个路径名。用来创建一个代表给定参数的文件或者文件夹。File(String parent,String child):parent原创 2020-06-04 19:44:15 · 364 阅读 · 0 评论 -
异常笔记
异常笔记1.概念异常是描述一些不同正常的意外的情况,作用是提高程序的健壮性。java中引入了异常处理机制来保证程序的健壮性2.异常分类检查异常:一种编译时需要处理的异常,在编译期间收到检查运行时异常:在程序中发生的异常,编译不受检查凡是RuntimeException及其子类都是运行时异常,其他异常都是检查异常3.异常体系Throwable:可抛出的Error: 错误,不应该由程序员捕获处理VirtualMachineError:虚拟机异常InternalErrorOutO原创 2020-06-03 19:15:26 · 73 阅读 · 0 评论 -
集合笔记
集合1. 概念集合和数组一样用于保存多个数据,集合是通过算法实习的一种容器,数组是编程语言内置的容器,数组的元素个数是固定的,集合的长度是随着元素的增长而增长。集合提供了大量的api简化了编程的复杂度。数据结构: 常见的如: 数组、链表、堆、栈、树、图这些数据结构和编程语言无关。不同的编程语言可以通过算法逻辑实现这些数据结构。2. 集合体系Collection : 集合跟接口,他抽取了了集合的最基本操作List : Collection 的子接口,扩展了有序集合的规范,支持下标访问操作原创 2020-06-03 18:50:08 · 144 阅读 · 0 评论 -
Date 类
Date 类表示一个时刻。示例 public static void main(String[] args) { // 获得当前系统 Date now = new Date(); System.out.println( now ); // 日期对象的方法过期 System.out.println(now.toLocaleString()); System.out.println( 1900+now.getYear() ); System.out.pri原创 2020-05-30 16:01:29 · 68 阅读 · 0 评论 -
Math类
Math类数学工具类,提供数学相关运算示例:public static void main(String[] args) { //圆周率 System.out.println(Math.PI); //方法 : // 1. 绝对值 System.out.println( Math.abs(-12) ); // 2. n次方 System.out.println( Math.pow(2, 10)); // 3. 开平方原创 2020-05-30 15:54:51 · 176 阅读 · 0 评论 -
String类
String 类** 概念**String 类的实例表示一个字符串,String 是一种不可变字符串,一对字符串进行改变操作,则创建一个全新的对象,然后把引用指向这个新的对象。声明方式String s = "abc";String s = new String("abc");//其他参考API手册相等比较public static void main(String[] args){ String s1 = "hello"; String s2 = "hello";原创 2020-05-30 15:51:51 · 2249 阅读 · 1 评论 -
包装类
包装类基本数据类型所对应的引用数据类型Object可统一所有数组,包装类的默认值为null为什么会有包装类基本数据类型不是面向对象,java提供了与基本数据类型对应的引用数据类型byteshortintlongfloatdoublebooleancharByteShortIntegerLongFloatDoubleBooleanCharater包装类型体系Number[数字类型]Byte Short Integer Long Float原创 2020-05-30 15:45:23 · 73 阅读 · 0 评论 -
Object类
Object类超类、基类,所有类的直接或间接父类,位于继承树的顶端getClass()方法返回Class的一个对象(类全名,字节码对象)搭配 newInstance()可实例化一个对象Class cc = Student.getClass();Object o = cc.newInstance();toString()方法获得字符串表达式默认格式:包名+类名+@+哈希码的十六进制转换,这种方式一般没用,建议在对象类中重写,把成员变量转换成字符串表达式class MyClas原创 2020-05-30 15:28:12 · 73 阅读 · 0 评论 -
四个内部类
内部类概念在一个类的内部定义一个完整的类特点:在编译后可生成独立的字节码文件内部类可直接访问外部类的私有成员,而不破坏封装可为外币类提供必要的内部功能组件可以实现类的私有化成员内部类的使用在外部类中,创建对象在使用在其他类中使用:保证内部类的访问权限足够先创建外部类的对象 ,再创建内部类的对象,因为成员内部类依赖外部类对象内部类与外部类变量访问问题:- 成员内部类可以方法外部类的实例变量- 成员内部类可以访问外部类的静态变量成员内部类不能定义静态属性publi原创 2020-05-30 15:09:26 · 176 阅读 · 0 评论 -
程序的执行机制
程序的执行机制1.通常编程语言编写的代码,计算机无法直接执行,需要编译或解释。Java先编译后执行,一次编译到处浪1)编译执行(1)将源文件编译成机器码,一次编译到处浪(2)执行效率搞,不可跨平台2)解释执行(1)将源文件被一行一行解释,一行一行执行。不同操作系统具备不同的解释器(2)执行效率低,可以跨平台...原创 2020-05-30 14:22:21 · 315 阅读 · 0 评论 -
Java版本及分类
Java语言概述1)Sun 公司于1995年推出的java面向对象的程序设计语言2)1996年发布JDK1.03)1999年发布J2SE、J2EE、J2ME4)2005年更名JavaSE、JavaEE、J2ME5)2009被Oracel收购6)2011发布java7.07)2014发布java8.0……目前最流行的版本JDK81.JavaSE: java标准版,是其他版本的基础,涵盖了java核心语法,集合网络等基础功能 。(可以做桌面应用)2.JavaEE:java企业版本,开发企业原创 2020-05-30 14:21:41 · 702 阅读 · 0 评论 -
Windows基本命令
win+R 快捷呼唤ping IP 测试目标连接磁盘名 : 切换盘符cd 文件夹名 进入指定文件夹cd … 返回上级目录cls 清屏dir 查看目录del 删除命令/? 调用指令的帮助文档rd /S 目录名 删除目录mkdir 创建目录md 创建echo “创建”>new.txt 创建文件, “”为写入内容...原创 2020-05-30 14:20:42 · 77 阅读 · 0 评论 -
Java语言的特点
1.简单相对C、C++、C#,不易造成内存溢出、减少代码量、代码可读性强2.面向对象使用计算机模拟世界,解决现实问题,贴近人类思想3.跨平台操作系统、服务器、数据库原创 2020-05-30 14:20:11 · 129 阅读 · 0 评论 -
Java的两大核心机制
Java跨平台机制JVM虚拟机:使用软件在不同操作系统中,模拟相同的环境把源代码编译成字节码(与平台无关)javac命名垃圾回收机制将不再使用的内存空间应当进行回收垃圾回收器在Java程序运行过程中自动启动,程序员无法精确控制和干预...原创 2020-05-30 14:19:32 · 310 阅读 · 0 评论 -
高精度浮点型 浮点数运算
BigDecimal位置:java.math包中。作用:精确计算浮点数创建方式: BigDecimal bd = newBigDecimal(“1.0”);方法将BigDecimal进行封装 BigDecimal add(BigDecimal bd) //加 BigDecimal subtract(BigDecimal bd) //减 BigDecimal multiply(BigDecimal bd) //乘 BigDecimal divide(BigDecimal bd) //原创 2020-05-30 14:17:56 · 857 阅读 · 0 评论 -
接口的笔记
什么是接口接口是一种能力和约定- 接口的定义:代表某种能力- 方法的定义:能力的具体体现接口是一种标准- 接口的实现- 接口的使用- 接口的回调(建议看完后面在回来看):- 先有接口的使用,后有接口的是实现- 过程:定义接口 》接口作为方法参数,并在方法调用接口方法(接口还未实现) 》 实现类实现接口 》 调用接口的实现者//简本语言中的函数思想public class TestCallBack{ //2. 显示人的一生 public static void s原创 2020-05-30 09:47:06 · 56 阅读 · 0 评论 -
反射的学习与应用
反射的学习与应用1. 类对象1.1 概念Java 中有一个类,java.lang.Class 类。这个类的对象,就被称之为类对象。源代码编写好后进行编译后产生的.class文件就是一个类对象1.2 获取类对象类名.class Class c = Sports.class; Class c2 = int.class; System.out.println(c); System.out.println(c2);结果为:c为类全名,c2为 int 数据类型对象.getClass(原创 2020-05-25 19:53:47 · 275 阅读 · 0 评论 -
三大修饰符
abstract关键字abstract抽象就是不具体,不完整的含义abstract在程序中用来描述抽象的事物和抽象的行为。例如: 动物、吃、睡、水果为什么存在抽象?当描述一类事物的过程中,不断的去提取父类,越往上,属性和行为就变得越模糊不具体,也就越抽象。抽象类:定义格式:abstract class Animal{ // ... }特点:不能实例化其本身对象。可以声明引用,实例化其子类作用:可以作为父类存在,定义子类的共性行为和属性可以作为引用,使用多态原创 2020-05-23 17:18:29 · 127 阅读 · 0 评论 -
多线程学习笔记
多线程与并发概念1.1 并发与多线程进程:大部分操作系统都是多任务操作系统。什么是多任务?指的是每个系统在同时能够运行多少个进程。如:在window中,开着一个腾讯视频,开着一个IDEA,开着一个QQ谈情说爱………。系统中同时有多个程序在内存中运行着,每一个运行的程序就是操作系统中运行的一个任务,也就是我们所说的“进程”。例:windows任务管理器在一个操作系统中可以同时运行多个进程,就是程序的并发。CPU时间片:一个系统同时开了多个程序,就意味着有四个进程要同时运行,为了解决这个问题,计原创 2020-05-23 14:50:53 · 129 阅读 · 0 评论 -
面向对象
面向对象**1. 面向对象的基本概念 **1.1. 对象的基本概念万事万物皆对象,对象具有一些特征和行为,在程序猿眼中特征就是对象的属性,行为就是对象的方法。对象与对象通过某种方式产生联系:一是方法的调用二是属性组合的方式1.2. 计算机中的对象从本质上来说计算机中的对象就是内存中的一块数据区域。1.3. 面向对象的特点1.各司其职:利用面向对象的思想完成一个需求,可能会由多个对象共同参与。而组成系统的每个对象,其功能应该单一。就就是对象的“各司其职”2.可重用性:对于类似原创 2020-05-22 19:19:32 · 155 阅读 · 0 评论 -
四舍五入
四舍五入BigDecimal废话不多,直接代码,可double,可float public void calcuteZC(){ double zC = 2 * pi * this.radio; double result = new BigDecimal(zC).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("圆的周长为:"+result); }原创 2020-05-20 17:47:48 · 90 阅读 · 0 评论 -
二分查找
二分查找二分查找主要针对于已经排列好的数列,对中取半,然后确定要查找的值,比中位数小再往左边对中取半,比中位数大,在往右对中取半,不断地缩小范围,知道中位数与查找的值相等就找到了。例下:来自百度的抠图,感谢大佬例:package com.qf.test;//二分查找:对一个排好序的数组有效//思想://1.计算有序数组的中间值//2.如果查询的数据 》 中间值,说明在右边//3.如果查询关键字和中间值相等则找到元素import java.util.Arrays;import ja原创 2020-05-19 12:01:30 · 109 阅读 · 0 评论 -
选择排序
选择排序原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]–arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]-arr[n]中选出最小的数据,将它与r[2]交换;以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。例: 数组 int[] = {5,原创 2020-05-19 11:45:56 · 82 阅读 · 0 评论