- 博客(62)
- 收藏
- 关注
原创 Mybatis案例
Mybatis案例实体类Goodspackage com.qianfeng.study.pojo.entity;import lombok.Data;import java.io.Serializable;import java.math.BigDecimal;import java.util.Date;/** * goods * @author */@Datapublic class Goods implements Serializable { /**
2020-07-25 16:12:28 225
原创 resultMap和resultType的区别?
resultMap和resultType的区别resultType就是返回的是一个简单的java类对象。可以是vo,也可以是实体类。resultMap返回的就是一个结果集映射,可以配置复杂的结果集,比一对一映射,一对多,多对多映射关系,都可以进行配置。...
2020-07-22 15:36:13 191
原创 mybatis的懒加载
mybatis的懒加载mybatis的延迟加载(懒加载),是什么意思呢?举个例子:查询用户表的时候,需要查询用户的衣服信息(1对1关联。)但是我查询的结果只会用到用户表本身的字段。那这种时候,mybatis就不会去真的查询衣服表的数据,不会联表查询,那么只会进行单表查询,性能就会大大提高,但是如果真的要用到衣服字段的时候,这个时候mybatis才会去真的查询衣服表。这个配置默认就是开启的,不需要去配置!...
2020-07-22 15:34:14 217
原创 一级缓存,二级缓存
一级缓存,二级缓存一级缓存一级缓存是基于同一个sqlSession的钱,也就是说,同一个sqlSession去执行相同sql语句查询的时候,myatis只会查询第一次,后面的结果直接从缓存(内存)里面取出来 // 第一次查询 Goods goods = goodsDao.selectByPrimaryKey(3L);// 调用接口的方式直接就得到了查询的结果 // 第二次执行了相同的查询,那么 第二次就直接走缓存 Goods goods2 = goods
2020-07-22 15:33:15 153
原创 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 145
原创 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 204
原创 多表查询,在mybatis的配置
多表查询,在mybatis的配置一对一:在resultMap标签里使用assciation标签来关联数据库一对多:在resultMap标签里边用的是collection标签来关联查询多对多:没有在resultMap里边配置,而是直接使用子查询来实现的,先从关系表里面找出对应的id,然后在根据id批量进行查询优化:学习mysql优化之后,用单表分布查询来代替多表查询,可以提升查询的性能和优化sql语句的维护...
2020-07-22 14:19:56 117
原创 MyBatis 学习
MyBatis 学习一、 什么是mybaitsmybatis是一款性能持久化工具,它的性能接近原生,主要特点是支持定制化的sql语句,普通的增删改查语句根本不用写(很多框架都能实现)是基于sql语句的一种框架mybatis 的SQL语句灵活,能够完成很复杂的查询语句二、 mybatis优点性能优秀,接近原生的JDBCsql语句灵活结果集映射灵活三、 Mybaits配置文件3.1 分层3.2 mybatis的执行流程体系结构mybatis配置文件,包括Mybatis全
2020-07-21 20:35:07 206
原创 Maven的使用
Maven的使用pom.xml jar依赖添加结构 <dependencies> <dependency></dependency> </dependencies>例·:mysql依赖添加
2020-07-20 19:40:26 67
原创 服务端、浏览器端JSON与对象、数组互转
服务端、浏览器端JSON与对象、数组互转服务端对象转jsonpublic static void test1(){ Student stu = new Student(1,"admin",10,"重庆"); String jsonObj = JSON.toJSONString(stu);}数组转jsonList<Student> list = new ArrayList<>();String jsonArr = JSON.ToJsonString(li
2020-07-08 11:30:30 157
原创 Cookie的使用
Cookie的使用1.什么是CookieCookie是在浏览器访问Web服务器的某个资源时,由Web服务器在HTTP响应中附带传递给浏览器的一小段数据一旦Web浏览器保存了某个Cookie,那么它以后每次访问该web服务器时,都应该在Http请求中将这个Cookie回传给Web服务器一个Cookie主要由标识该信息的名称(name)和值(value)组成。创建Cookie@WebServlet("/cookie/save.do")public class SaveCookie ext
2020-07-06 20:58:47 125
原创 转发和重定向区别
转发和重定向区别转发转发发生在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理页面跳转request.getRequestDispatcher("/目标-pattern").forward(request,respone);使用forward跳转时,实在服务器内部跳转,地址栏不会发生变化,属于同一次请求数据传递forward表示一次请求,实在服务器内部跳转,可以共享一次request作用域中的数据request作用域:拥有存储数据的空间,作用范围是一
2020-07-06 20:26:37 139
原创 解决servlet resp.getWriter().println(“xxx“)中文乱码问题
解决servlet resp.getWriter().println(“xxx”)中文乱码问题只需三行代码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8");
2020-07-06 17:26:06 1049 1
原创 文件上传与下载
文件上传与下载1. 上传控制层处理//文件上传请求控制/** 从Servelt3.0开始Servlet对文件上传做了增强* 使用 @MultipartConfig 配置Servlet 可以通过 getPart直接获得文件对象** */@MultipartConfig@WebServlet("/pic.do")public class UserPicController extends HttpServlet { @Override protected void do
2020-07-06 16:21:04 128
原创 反射封装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 166
原创 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 314
原创 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 237
原创 数据库的学习和应用
数据库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 255
原创 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 150
原创 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 115
原创 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 463
原创 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 199
原创 网络编程笔记
网络编程一、基础概念概念基于网络协议,实现网络程序开发,用于多台计算机互联网通信的网络编程模式,网络应用程序区别与普通程序,网络程序需要有网络环境才可以运行,常见的如QQ,迅雷……通信模型OIS7曾模型(概念模型)TCP/IP通信模型(广泛使用)IP地址协议网络地址协议,用于标识计算机的位置,是计算机在网络环境中的身份标识端口同一台计算机,数据类型的通道,不同的应用通过绑定不同的端口来,来收发特定端口的数据范围0~65535UPL统一资源定位符,用于定
2020-06-12 00:54:49 186
原创 多线程应用笔记
多线程一、什么是线程线程是一个顺序执行流,或者叫程序的一条执行路径,是CPU调度的最基本单元。进程: 一个程序运行会产生至少一个进程,进程是临时的,有创建有撤销,是操作系统调度的最小单元。线程: 是一种轻量级线程,一个进程至少一个线程。现代操作系统 几乎都是采用分时间 抢占策略,一个线程通过获得cpu时间片段执行线程中的逻辑代码。二、运行数据线程栈:存储线程需使用的局部变量,每个线程都有自己独立的栈空间堆空间: 存储线程需使用的对象,多个线程可以共享堆中的对象程序计数器:维护程序
2020-06-09 18:40:27 92
原创 判断数字是否为质数
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 152
原创 判断字符串是否为数字
判断字符串是否为数字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 196
原创 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 396
原创 异常笔记
异常笔记1.概念异常是描述一些不同正常的意外的情况,作用是提高程序的健壮性。java中引入了异常处理机制来保证程序的健壮性2.异常分类检查异常:一种编译时需要处理的异常,在编译期间收到检查运行时异常:在程序中发生的异常,编译不受检查凡是RuntimeException及其子类都是运行时异常,其他异常都是检查异常3.异常体系Throwable:可抛出的Error: 错误,不应该由程序员捕获处理VirtualMachineError:虚拟机异常InternalErrorOutO
2020-06-03 19:15:26 84
原创 集合笔记
集合1. 概念集合和数组一样用于保存多个数据,集合是通过算法实习的一种容器,数组是编程语言内置的容器,数组的元素个数是固定的,集合的长度是随着元素的增长而增长。集合提供了大量的api简化了编程的复杂度。数据结构: 常见的如: 数组、链表、堆、栈、树、图这些数据结构和编程语言无关。不同的编程语言可以通过算法逻辑实现这些数据结构。2. 集合体系Collection : 集合跟接口,他抽取了了集合的最基本操作List : Collection 的子接口,扩展了有序集合的规范,支持下标访问操作
2020-06-03 18:50:08 157
原创 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 79
原创 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 199
原创 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 2298 1
原创 包装类
包装类基本数据类型所对应的引用数据类型Object可统一所有数组,包装类的默认值为null为什么会有包装类基本数据类型不是面向对象,java提供了与基本数据类型对应的引用数据类型byteshortintlongfloatdoublebooleancharByteShortIntegerLongFloatDoubleBooleanCharater包装类型体系Number[数字类型]Byte Short Integer Long Float
2020-05-30 15:45:23 86
原创 Object类
Object类超类、基类,所有类的直接或间接父类,位于继承树的顶端getClass()方法返回Class的一个对象(类全名,字节码对象)搭配 newInstance()可实例化一个对象Class cc = Student.getClass();Object o = cc.newInstance();toString()方法获得字符串表达式默认格式:包名+类名+@+哈希码的十六进制转换,这种方式一般没用,建议在对象类中重写,把成员变量转换成字符串表达式class MyClas
2020-05-30 15:28:12 86
原创 四个内部类
内部类概念在一个类的内部定义一个完整的类特点:在编译后可生成独立的字节码文件内部类可直接访问外部类的私有成员,而不破坏封装可为外币类提供必要的内部功能组件可以实现类的私有化成员内部类的使用在外部类中,创建对象在使用在其他类中使用:保证内部类的访问权限足够先创建外部类的对象 ,再创建内部类的对象,因为成员内部类依赖外部类对象内部类与外部类变量访问问题:- 成员内部类可以方法外部类的实例变量- 成员内部类可以访问外部类的静态变量成员内部类不能定义静态属性publi
2020-05-30 15:09:26 211
原创 程序的执行机制
程序的执行机制1.通常编程语言编写的代码,计算机无法直接执行,需要编译或解释。Java先编译后执行,一次编译到处浪1)编译执行(1)将源文件编译成机器码,一次编译到处浪(2)执行效率搞,不可跨平台2)解释执行(1)将源文件被一行一行解释,一行一行执行。不同操作系统具备不同的解释器(2)执行效率低,可以跨平台...
2020-05-30 14:22:21 332
原创 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 751
原创 Windows基本命令
win+R 快捷呼唤ping IP 测试目标连接磁盘名 : 切换盘符cd 文件夹名 进入指定文件夹cd … 返回上级目录cls 清屏dir 查看目录del 删除命令/? 调用指令的帮助文档rd /S 目录名 删除目录mkdir 创建目录md 创建echo “创建”>new.txt 创建文件, “”为写入内容...
2020-05-30 14:20:42 88
原创 Java语言的特点
1.简单相对C、C++、C#,不易造成内存溢出、减少代码量、代码可读性强2.面向对象使用计算机模拟世界,解决现实问题,贴近人类思想3.跨平台操作系统、服务器、数据库
2020-05-30 14:20:11 143
原创 Java的两大核心机制
Java跨平台机制JVM虚拟机:使用软件在不同操作系统中,模拟相同的环境把源代码编译成字节码(与平台无关)javac命名垃圾回收机制将不再使用的内存空间应当进行回收垃圾回收器在Java程序运行过程中自动启动,程序员无法精确控制和干预...
2020-05-30 14:19:32 330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人