自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寄蜉蝣于天地,渺沧海之一粟。

相与枕藉乎键中,不知东方之既白。

  • 博客(82)
  • 收藏
  • 关注

原创 20191231——动态sql

什么是动态sqlmybatis核心对SQL语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装,生成sql需求用户信息综合查询和用户信息综合查询总数对查询条件进行判断,如果输入参数不为空才进行查询条件拼接 <select id="findUserList" parameterType="cn.itcast.mybatis.pojo.UserQueryVo" result...

2019-12-31 16:03:52 82 1

原创 20191231——输出映射

resultType使用resulttype进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功如果查询出来的列名与pojo中的属性全部不一致,那么没有创建pojo对象只有查询出来的有一个一致,那么会创建出来一个pojo对象还可以输出简单类型需求:用户信息综合查询的列表总数,通过查询总数和上边用户查询列表才可以实现分页。mapper.xml与.java@Te...

2019-12-31 05:02:53 110

原创 20191230——输入映射

输入映射通过输入parameterType指定输入参数的类型,类型可以是简单类型,hashmap,pojo类型主要讲pojo的包装对象需求:完成用户综合查询,需要传入查询条件(可能包括用户信息,也可能包括其他信息,比如商品的、订单的)针对上边需求,使用自定义的包装类的包装类自定义包装类型pojo在包装类型中pojo中复杂的查血条件包装进去。package cn.itcast.myba...

2019-12-31 04:32:04 149

原创 20191230——mybatis全局配置文件SqlMapperConfig文件

properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transactionManager(事务管理)dataSource(数据源)mappers(映射器)...

2019-12-30 21:44:52 147

原创 20191229——mapper代理方法

思路程序员只需要mapper接口,相当于(dao接口),还需要编写mapper.xml映射文件mybatis可以自动将,生成mapper接口实现类的代理对象mapper接口需要遵循一些接口规范开发规范:1.在mapper中namespace等于mapper接口的地址2.mapper.java接口中方法名和mapper.xml中的statement的id一致3.mapper接口输入参...

2019-12-29 11:55:07 113 1

原创 20191229——mybatis开发dao

SqlSession使用范围SqlSessionFactory通过sqlsessionfactory创建sqlsession,使用单例模式管理sqlsessionfactory,工厂模式一旦创建,一直使用一个实例。将来和spring整合后, 使用单例模式管理sqlsessionfactorysqlsessionfactorybuilder创建会话工厂通过上面这个创建工厂,将sqlsess...

2019-12-29 08:33:22 94

原创 20191229——mybatis 与hibernate

hibernate与maybatis的本质区别和应用场景hibernate入门门槛高,标准的orm框架 对象关系映射,本质使程序员不需要写sql对sql语句进行优化,修改比较困难的应用场景:适用与需求变化不多的,中小型项目,后台管理系统,mybatis:专注于本身,程序员需要自己去写sql语句,sql修改,优化比较方法一个不完全的orm框架虽然程序员自己写sql,mybatis可以实现...

2019-12-29 07:18:10 79

原创 20191229——mybatis 添加用户

映射文件在User.xml来配置添加用户的sql(Statement) <insert id="insertUser" parameterType="cn.itcast.mybatis.pojo.User"> insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{...

2019-12-29 07:07:38 171

原创 20191228——mybatis下一个程序

根据用户名称模糊查询用户信息创建映射文件添加到User里面这是MybatisFirst另一个逻辑的代码 public void findUserByName() throws IOException { //mybatis配置文件 String resource = "SqlMapConfig.xml"; //得到配置文件流 ...

2019-12-29 00:59:10 67

原创 20191228——mybatis入门程序

需求根据用户id(主键)查询用户信息根据用户名称模糊查询添加用户删除用户更新用户环境mybatis运行环境(jar包)从github下载lib下 依赖包mybatis-3.2.7mysql的驱动包sqlmapperconfig.xml配置mybatis的运行环境,数据源,等等根据主键id查询用户在映射文件中配置sql语句,user.xml映射文件命名:User....

2019-12-28 11:36:29 178 1

原创 20191227——mybaits入门

基础知识mybatis是一个框架,理解框架原理。mybatis框架mybatis入门程序,是一个持久层的框架,就是对JDBC的封装。对原生态的jdbc的问题进行总结,就是单独使用jdbc开发。案例 实现用户的增删改查mybatis和dao两种方法原始的dao开发方法(程序需要编写dao接口和dao实现类)mybatis的mapper接口,代理开发方法mybatis配置文件 SqlM...

2019-12-28 07:23:57 197

原创 20191226——java杂谈一

Java BeanJava语言欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。Java Bean正是编写这套胶水代码的惯用模式或约定。这些约定包括getXxx、setXxx、isXxx、addXxxListener、XxxEvent等。遵守上述约定的类可以用于若干工具或库。举个例子,假如有人要用Java实现一个单向链表类,可能会这...

2019-12-26 03:08:32 112

原创 20191224——java spring 框架

java spring 框架是什么,有哪些好处Spring 是另一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具有很高的凝聚力和吸引力。Spring 框架因其强大的功能以及卓越的性能而受到众多开发人员的喜爱。Spring 是分层的 Java SE/EE full-stack 轻量级开源框架,以 IoC(Inverse of Control,控制反转)和 AOP(Aspe...

2019-12-26 02:22:27 482

原创 20191225——mybatis理论基础

什么是mybatis在移动互联网时代,MyBatis 成为了目前互联网 Java 持久框架的首选。MyBatis 本是 Apache 的一个开源项目——iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。MyBatis 是一个基于 Java 的持久层框架。MyBatis 提供的持久层框架包括...

2019-12-25 23:49:49 297

原创 20191222——第四题 寻找两个有序数组的中位数

中位数我们首先了解一下什么叫中位数,中位数在统计学中被用来:将一个集合划分为两个长度相等的子集,其中一个子集中的元素总是大于另一个子集中的元素在一个长度为n的数组A中,如果我们可以在任意一个位置将数组划分,有n+i中划分方式。n=0时,right_part 为空,同理,n=n+i的时候,left_part 为空。采用同样的方法,有一个数组B,将B划分为两个部分。将 \text{lef...

2019-12-24 16:34:59 84

原创 20191222——力扣动态规划

做一个力扣单项的专栏 关于动态规划第一个看的博文动态规划1动态规划的定义动态规划实际上是一类题目的总称,并不是指某个固定的算法。动态规划的意义就是通过采用递推(或者分而治之)的策略,通过解决大问题的子问题从而解决整体的做法。动态规划的核心思想是巧妙的将问题拆分成多个子问题,通过计算子问题而得到整体问题的解。而子问题又可以拆分成更多的子问题,从而用类似递推迭代的方法解决要求的问题。动态规划...

2019-12-22 03:29:50 150

原创 20191218——关于BFS与DFS 广度与深度优先遍历

二叉树是计算机中重要的数据结构,这里主要说一下二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)所谓DFS,就是沿着树的深度一直往下,一直到达一个节点,然后返回剩余遍历的节点。根据树的性质,树结构不存在环,因此遍历的时候不需要标记,如果在遍历一个图的时候,因为图中有环存在,因此需要标记访问过的节点,以防止程序进入死循环,言归正传,树的DFS有三种,分别为前序遍历,中序遍历,后续遍历。根据这个...

2019-12-18 18:49:38 105

原创 20191218——第一百零四 二叉树的最大深度

还是递归每次递归,然后最后返回多少的深度/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */cla...

2019-12-18 18:04:09 64

原创 20191218——第一百零一题 对称二叉树

递归还是一看这道题与上一道题,相同的树一样,使用递归来做。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * ...

2019-12-18 17:58:54 50

原创 20191218——第一百题 相同的树

以后的代码要进行注释,方便理解递归最简单的策略是递归,首先判断p与q是不是None,然后判断它们的值是否相等,若通过以上判断,则对递归子节点做同样操作。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNod...

2019-12-18 17:49:54 80

原创 20191218——第八十八题 合并两个有序数组

class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int p1 = m-1; int p2 = n-1; int p = n+m-1; while((p1 >=0) && (p2>=0)){ ...

2019-12-18 15:11:17 62

原创 20191217——第八十三题 删除排序链表中的重复元素

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode deleteDupli...

2019-12-17 19:55:54 59

原创 20191217——第七十题 爬楼梯

第一种方法使用的还是动态规划class Solution { public int climbStairs(int n) { if(n == 1){ return 1; }else if(n == 2){ return 2; } int[] dp = new int[n+1]...

2019-12-17 19:48:42 59

原创 20191217——关于二分法 “十分好用的二分查找法”

原文链接-关于神奇的二分法传统的二分查找方法去中位数索引的代码有问题int mid = (left + right) / 2 这行代码是有问题的,在 left 和 right 都比较大的时候,left + right 很有可能超过 int 类型能表示的最大值,即整型溢出,为了避免这个问题,应该写成:int mid = left + (right - left) / 2 ;事实上,i...

2019-12-17 17:22:46 396

原创 20191217——第六十九题 x的平方根

有暴力破解法,就是一直来回试试,但是看题还是应该使用二分法。像昨天的题一样,class Solution { public int mySqrt(int x) { long left = 0; long right = x/2 +1; while(left < right){ long mid = (righ...

2019-12-17 15:42:14 55

原创 20191216——第六十七题 二进制求和

也是没有官方的解答,class Solution { public String addBinary(String a, String b) { StringBuffer ans = new StringBuffer(); int ca =0; for(int i = a.length() - 1,j = b.length()-1; i&g...

2019-12-16 21:00:10 70

原创 20191216——第六十六题 加一

class Solution { public int[] plusOne(int[] digits) { for(int i =digits.length-1;i>=0;i--){ digits[i]++; digits[i] = digits[i]%10; if(digits[i] != 0)...

2019-12-16 20:24:24 74

原创 20191216——第五十八题 最后一个单词的长度

class Solution { public int lengthOfLastWord(String s) { s = s.trim(); int last = s.lastIndexOf(" "); return s.length()-last-1; }}其实挺简单的,官方没给出答案。用trim直接去掉开头和结尾的空格,然后...

2019-12-16 20:07:55 73

原创 20191216—— 第三十八题报数个人觉得没什么意思就过了 第五十三题 最大子序和

遇到该问题,脑子里很乱不知道应该去找何种方式去解。准备看了答案之后,再深刻的理解一下。官方的分治法这个是使用分治法的典型的列子,并且可以用合并排序相似的算法求解。下面是分治法解决问题的模板:定义基本情况。 将问题分解为子问题并递归地解决它们。 合并子问题的解以获得原始问题的解。算法:当最大子数组有 n 个数字时:若 n==1,返回此元素。left_sum 为最大子数组前 n/2...

2019-12-16 20:02:53 76

原创 20191216——第三十五题 搜索插入位置

第一个想到的方法肯定是暴力破解法class Solution { public int searchInsert(int[] nums, int target) { for(int i =0;i < nums.length;i++){ if(nums[i]>= target){ return i; ...

2019-12-16 19:18:38 105

原创 20191216——第二十八题 实现strStr

我直接使用的indexOf()方法class Solution { public int strStr(String haystack, String needle) { int x = haystack.indexOf(needle); return x; }}关于indexOf的实例public class Main { pub...

2019-12-16 17:54:05 79

原创 20191216——第二十七题 移除元素

class Solution { public int removeElement(int[] nums, int val) { int i = 0; for(int j =0;j<nums.length;j++){ if(nums[j]!= val){ nums[i] =nums[j]; ...

2019-12-16 17:28:30 86

原创 20191216——第二十六题 删除排序数组中的重复项

双指针方法数组完成排序之后,我们可以防止两个指针i和j,其中i是慢指针,j是快指针,只要nums[i] = nums[j] 我们就增加j以跳过重复项。当我们遇到 nums[j] \neq nums[i]nums[j]​ =nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j]nums[j])的值复制到 nums[i + 1]nums[i+1]。然后递增 ii,接着我...

2019-12-16 17:14:44 54

原创 20191216——第二十一题 合并两个有序链表

java中数据结构中的链表数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造成内存的浪费,过小又不能满足数据量的存储。链表 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Poin...

2019-12-16 16:42:54 86

原创 20191214——第二十题 有效的括号

class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack(); for(int i =0;i<s.length();i++){ if(s.charAt(i)== '('|| s.charAt(i)=='...

2019-12-16 16:04:19 71

原创 20191214——神舟战神 reboot and select proper...解决

起因是今儿中午到时实验室开机的时候,一直在卡主然后突然之间蓝屏了,提示我什么反馈信息,过了十分钟也没什么反应,然后我就强制重启了。结果就翻船了,一直提示reboot and select proper情况上网搜了一下,发现翻船的人很多。进入bios系统发现找不到我的固态硬盘了。第一个128G的硬盘在bios系统显示为空,也不知道为什么找不到我的固态了,我敲了敲电脑,重启也是一样。然后看到不...

2019-12-14 14:04:12 7249 7

原创 20191213——第十四题 最长公共前缀

class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length==0){ return ""; } String firstString = strs[0]; for(int i =0;i<...

2019-12-13 17:42:32 66

原创 20191212——第十三题 罗马数字转整数

class Solution { public int romanToInt(String s) { Map<String, Integer> map = new HashMap<>(); map.put("I", 1); map.put("V", 5); map.put("X", 10); ...

2019-12-12 19:21:36 90

原创 20191211——回文数 第九题

我自己做出来的class Solution { public boolean isPalindrome(int x) { String y = ""+x; StringBuffer z =new StringBuffer(y); if(z.reverse().toString().equals(y)){ return...

2019-12-11 17:28:52 103

原创 20191211——第七题 整数反转

这套题卡了很久,实在不会看到题解才明白错的原因,原因就在于这个会不会溢出,可能一开始的数组并没有溢出计算机的范围pow(2,31) ,但是当你反转之后你就有可能进行溢出,所以你需要进行判断。方法其实还是如此,创建一个变量result用来得到最后的输出,然后每次先进行取余,然后在除,然后成为反转的数字,最终返回。class Solution { public int reverse(i...

2019-12-11 16:31:30 274

空空如也

空空如也

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

TA关注的人

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