- 博客(19)
- 收藏
- 关注
原创 HashMap的遍历
JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历。原因:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。keyS
2017-11-14 10:57:52
284
原创 HashMap底层原理
我们经常用到HashMap,hashmap本质数据加链表。根据key取得hash值,然后计算出数组下标,如果多个key对应到同一个下标,就用链表串起来,新插入的在前面。我们来研究下底层实现,看源码可以看出HashMap继承AbstractMap(抽象类),实现Map接口及克隆,序列化接口.HashMap的底层容量是16(二进制1向左移动4位即16),public class
2017-11-08 15:39:10
398
原创 mybati的xml中sql 当传入多个类型不同的参数
mybati的xml中sql 当传入多个类型不同的参数,目前知道有4种方法:1. 把参数按照key-value的格式存入map,参数类型为map2. 把参数封装成POJO,参数类型为实体类型3. 可以按照占位符的方式;如下 select * from user where user_name = #{0} and user_area=#{
2017-11-02 17:14:50
1690
原创 删除数据库表中某一字段相同的数据,并保留最新一条---Mysql
今天碰到一个题,假如有一个person表,有id,和name两个字段,如果要删除存在name相同的字段的数据,并保留最新一条,sql怎么设计?
2017-11-02 16:41:21
3557
原创 FeilUtils---下载文件时中文乱码
import java.io.IOException;import java.net.URLEncoder;import sun.misc.BASE64Encoder;public class FileUtils { /** * 下载文件时,针对不同浏览器,进行附件名的编码 * * @param filename * 下载文件名 * @par
2017-10-31 15:47:00
630
原创 Java基础之--StringBuffer和StringBuilder
StringBuffer和StringBuilder都是字符串变量,但是StringBuffer是线程安全的,但运行速度较StringBuilder慢,StringBuilder是线程不安全的,速度相对快一些.依据源码可以看出StringBuilder的方法是不加锁的. @Override public StringBuilder append(CharSequence s)
2017-10-31 13:45:18
261
1
原创 Java 基础之---String
String 在java中用于表示字符串。String 对象的值是不可变的.我们在平时有些时候采用String的拼接或者给一个变量重复赋值,表面上还是一个变量,实际上内存地址已经变化.实际的String 是final定义的.是不可变的.(对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对
2017-10-31 11:16:53
228
原创 单元测试--Junit
JUnit是一个Java语言的单元测试框架。属于第三方工具,一般情况下需要导入jar包,不过,多数Java开发环境已经集成了JUnit作为单元测试工具。单元测试的步骤:1. 确认下当前开发环境是否已经集成Junit,如果没有集成,导入Junit的jar包;2. 编写测试方法;简单的来说相当于替代main的方法;3. 在方法上加上@Test的注解;注解修饰方法的要求:publ
2017-10-31 10:24:02
276
原创 java 基础之--java的反射机制
一:什么是反射机制?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 说的更明白一点就是JAVA动态相关机制:Reflection,使用反射我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Ja
2017-10-27 11:25:29
280
原创 mybatis的配置文件-typeAlias(别名)
mybatis的配置别名有以下几种方式:第一种: 第二种: 如果POJO 过多,第一种方法就不太适用了.这时我们可以直接指定package的名字, mybatis会自动扫描指定包下面的javabean,并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名(别名是不分
2017-10-27 10:51:47
945
原创 mybatis的配置元素--typeHandler类型处理器
typeHandler源码分析可参考:http://www.cnblogs.com/dongying/p/4040435.htmltypeHandler的作用:可以在bean对象的属性和数据库中存储的对象属性进行转换, 譬如bean中是list属性,存储到数据库中可以是array属性, bean中是java.util.Date属性,数据库中存储的是varchar类型的unix时间戳。typ
2017-10-26 15:38:13
1299
原创 mybatis的配置元素--insert(主键回填和自定义)
MySql里面的主键需要根据一些特殊的规则去生成,在插入后我们往往需要获得这个主键,以便于未来的操作1. 主键自增的情况下使用过keyProperty属性指定哪个是主键字段,同时用userGeneratedKeys 属性告诉Mybatis这个主键是否使用数据库内置策略生成mapper namespace="testuser"> insert id="insertUser" p
2017-10-26 15:36:26
2471
原创 mybatis的配置元素--properties
mybatis中提供了3中配置方式property 子元素properties配置文件程序参数传递property子元素的配置方式properties> property name="driver" value="com.mysql.jdbc.Driver/> url" value="jdbc:mysql://localhost:3306/mybatis"/>
2017-10-26 15:34:32
485
原创 mybatis的一对一,一对多的关系映射配置及性能分析(延迟加载)
一对一关系映射1)自动关联(偷懒的办法):可以自定义一个大而全的pojo类,然后自动映射其实是根据数据库总的字段名称和 pojo中的属性名称对应.2)手动关联: 需要指定数据库中表的字段名称和java的pojo类中的属性名称的对应关系. 使用association标签需求: 查询订单所属的客户UserMapper.xml配置:resultMap type="Orders"
2017-10-26 15:00:38
1344
原创 mybatis的动态sql ---元素
MyBatis 的强大特性之一便是它的动态 SQL 能力。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 字符串有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,
2017-10-26 14:58:54
975
原创 Mybatis的配置文件
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper接口开发需要遵循以下规范:接口与mapper.xml在同一包下,且名字一致Mapper.xml文件中的namespace与mapper接口的类路径相同。Mapper接口方法名和Mapper.
2017-10-26 14:41:18
422
原创 mybais的简介
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.Mybatis也是一种ORM框架,所以,肯定也有两类配置文件。
2017-10-24 17:05:33
367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人