ViewResolver继承体系
package com.javadu.strings;
/**
* Created by duqi on 16/6/2.
*/
public class StringExample {
public static void main(String[] args) {
String str1 = "abcde";
String str2 = "cbdef";
String str3 = "abcdef";
System.out.println(str1.compareTo(str2)); //比较ASICC码的值: 'a'为97,'c'为99
System.out.println(str1.compareTo(str3)); //比较长度
System.out.println(str2.compareTo(str3)); //比较ASICC
}
}
<!-- DataSource定义 -->
<!-- TransactionManager Bean -->
<!-- 启用事务机制 -->
<!-- SqlSessionFactoryBean 定义 -->
<!-- MapperScannerConfigurer 定义 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
),sqlSessionFactionBean的mapperLocations属性设这些mapper文件的位置;IOUtils.toString(in);
这么用就可能有问题,你跟踪这个toString()的实现可以看到:public static String toString(InputStream input) throws IOException {
return toString(input, Charset.defaultCharset());
}
但是,这个Charset.defaultCharset()再跟进去,可以看到:
/**
* Returns the default charset of this Java virtual machine.
*
* <p> The default charset is determined during virtual-machine startup and
* typically depends upon the locale and charset of the underlying
* operating system.
*
* @return A charset object for the default charset
*
* @since 1.5
*/
public static Charset defaultCharset() {
if (defaultCharset == null) {
synchronized (Charset.class) {
String csn = AccessController.doPrivileged(
new GetPropertyAction("file.encoding"));
Charset cs = lookup(csn);
if (cs != null)
defaultCharset = cs;
else
defaultCharset = forName("UTF-8");
}
}
return defaultCharset;
}
按照注释中的说法,字符编码取决于JVM启动参数、Locale和底层的系统编码,因此我再回去看我的JVM的启动参数(命令:ps -ef | grep java
):
-Dfile.encoding=GB18030
好吧,因此回到开头,这个函数的正确用法是:
IOUtils.toString(in, Charset.forName("UTF-8"));
Collections.sort(dataList)
进行排序:package com.javadu.collections;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListSort {
public static void main(String[] args) {
List<CalllogNumberOutgoingCount> calllogNumberOutgoingCounts = new ArrayList<CalllogNumberOutgoingCount>();
calllogNumberOutgoingCounts.add(new CalllogNumberOutgoingCount("111", 2));
calllogNumberOutgoingCounts.add(new CalllogNumberOutgoingCount("222", 3));
calllogNumberOutgoingCounts.add(new CalllogNumberOutgoingCount("333", 19));
System.out.println("before sort:");
for (CalllogNumberOutgoingCount bean : calllogNumberOutgoingCounts) {
System.out.println("number: " + bean.getNumber());
}
Collections.sort(calllogNumberOutgoingCounts);
System.out.println("after sort:");
for (CalllogNumberOutgoingCount bean : calllogNumberOutgoingCounts) {
System.out.println("number: " + bean.getNumber());
}
}
}
class CalllogNumberOutgoingCount implements Comparable<CalllogNumberOutgoingCount> {
private String number;
private Integer outgoingCount;
public CalllogNumberOutgoingCount(String number, Integer outgoingCount) {
this.number = number;
this.outgoingCount = outgoingCount;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Integer getOutgoingCount() {
return outgoingCount;
}
public void setOutgoingCount(Integer outgoingCount) {
this.outgoingCount = outgoingCount;
}
//o的outgoing_count小于this的对应字段,则返回负数;大于则返回正数;在这里懒得了解背后的原理的话,则可以尝试下结果即可。
public int compareTo(CalllogNumberOutgoingCount o) {
return o.getOutgoingCount().compareTo(this.getOutgoingCount());
}
}
package com.javadu.collections;
import java.util.*;
public class ListQuchong {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
User user1 = new User("duqi", "456");
userList.add(user1);
User user2 = new User("temp", "456");
userList.add(user2);
User user3 = new User("dddd", "234");
userList.add(user3);
for (User u : userList) {
System.out.println(u.getName());
}
List<User> userListNoDupAndSort = removeDuplicateUser(userList);
for (User u : userListNoDupAndSort) {
System.out.println(u.getName());
}
}
private static ArrayList<User> removeDuplicateUser(List<User> users) {
Set<User> set = new TreeSet<>(new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
return o1.getUserId().compareTo(o2.getUserId()); //字符串,则按照asicc码升序排列
}
});
set.addAll(users);
return new ArrayList<>(set);
}
}
class User {
private String name;
private String userId;
public User(String name, String userId) {
this.name = name;
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
<insert id="insert" parameterType="exampleBean">
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER">
select last_insert_id() as id
</selectKey>
INSERT INTO examples
(name,reject,ask,source,ctime,mtime)
VALUES
(#{name},#{reject},#{ask},#{source},now(),now())
</insert>