java学习总结
文章平均质量分 59
刘晓春
这个作者很懒,什么都没留下…
展开
-
Servlet、JSP学习总结
Servlet和JSP属于J2EE的13个规范。之前仅仅停留在理论上,如今在项目里实践了一下,加深了理解。我对Servlet和JSP的理解: Servlet运行在服务器上,用来处理HTTP请求,是前端和后端的一个桥梁。这让我想到了之前在.NET里接触的MVC,这个Servlet不就是Controller吗,Controller接收的请求,然后调用后端的方法。 Servlet原创 2015-09-27 14:34:22 · 960 阅读 · 22 评论 -
java获取网络图片并上传oss
OSS,阿里云对象存储,这次项目中的图片都选择了这个存储方式。因为做微信登录,所以在拿到用户头像的时候需要保持到oss,以免用户换头像后导致系统图片失效,影响用户的体验。大体思路如下:1.获取微信头像链接2.将该图片写入本地3.把刚刚写入的图片上传到oss4.删除本地图片上传oss的代码: public static String uploadHead原创 2016-03-30 23:04:54 · 6164 阅读 · 9 评论 -
java线程的使用
有时候我们会遇到需要很长时间的运行才能完成操作,此时我们的页面不可能一直处于等待状态,所以我们可以写一个线程,让它慢慢执行就行。 下面是我在开发微信同步粉丝的时候的一个例子:@RequestMapping(params = "loadMembers") @ResponseBody public AjaxJson loadMembers(WeixinMemberEntity原创 2016-02-29 00:04:15 · 883 阅读 · 9 评论 -
MyBatis自动生成Entity、Dao、Mapping
新接的项目使用了MyBatis,Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,对于其中最基础的Entity,以及最基础的CRUD,我们可以利用Mybatis-Generator来帮我们自动生成文件。 首先下载相关文件:http://pan.baidu.com/s/1eRyqYY2 打开lib文件,配置generatorConfig.xm原创 2016-02-29 00:04:58 · 3162 阅读 · 8 评论 -
mybatis连接mysql数据库插入中文乱码
最近刚接触mybatis,今天写到插入方法的时候,突然发现中文乱码。 网上搜了一下,说是要改mysql的配置文件夹,修改my-default.ini的配置[mysqld]character-set-server=utf8 [client]default-character-set = utf8[mysql]default-character-set = utf8 照做了,依然是乱原创 2016-02-29 00:05:33 · 2628 阅读 · 9 评论 -
mybatis模糊查询
项目中遇到模糊查询,总结了几种查询方法,当然只是暂时用一下,后期要改为全文检索 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE nam原创 2016-02-29 00:06:04 · 980 阅读 · 11 评论 -
Java中Runnable和Thread的区别
在Java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。package org.thread.demo; class MyThread extends Thread {原创 2016-04-30 18:16:42 · 587 阅读 · 4 评论 -
java定时器的使用
项目中用到一个定时任务,所以用到了java中定时器,大家可根据下面的几个方法测试,timer3可继续拓展,改为按某个周期执行。import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TimeTest { publ原创 2016-04-30 18:17:05 · 735 阅读 · 4 评论 -
mybatis关闭缓存
这次项目用的是mybatis,进行到现在遇到一个问题,查询语句会有缓存,就是数据更改后,在一定时间读到的依然是旧数据,mybatis内部本来在插入,删除,修改等方法执行后会清楚缓存,但是由于后台使php的,而java这边仅仅是查询,所以当php更新后java不能及时读取到最新的数据,怎么办? 默认情况下,select语句总是使用缓存,但有些情况下,我们希望它总是刷新从而得到最新数据,原创 2016-04-30 18:17:23 · 10010 阅读 · 15 评论 -
StringUtil类的常用方法
平时写代码的时候,通常会对某个值判断是否为null或者“”,甚至要加上去掉空格的功能。偶然发现公司的同事写代码,没有null==str || ""==str这样的代码,而是StringUtil.isBlank(str)。原来是用的StringUtil这个工具类,顿时觉得人家的代码好高大上。故,把别人的技能拿来学习总结。 StringUtils 方法的操作对象是 java.lang.S原创 2016-04-30 18:17:37 · 3686 阅读 · 3 评论 -
阿里开源项目Druid
介绍一个开源项目我们项目的框架是架构师搭好的,之前没有注意,前几天配置事务的时候才发现,原来我们的框架用了阿里的Druid。Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定原创 2016-05-31 18:18:40 · 1206 阅读 · 4 评论 -
Java关于金额计算的选择方案
这次项目中有支付的模块,所以就会涉及到钱的计算,从网上查了写资料,发现大家都用BigDecimal,与此同时都说不用double,为什么就不用double呢? 其实大家用BigDecimal的原因是因为它具有更高的精度和更小的范围。那double和BigDecimal相比,精度差多少呢,看下图: 其实在实际的使用中,我根本不需要这么高的精度,感觉使用double也没什么原创 2016-05-31 18:18:57 · 2278 阅读 · 3 评论 -
BigDecimal用法总结
BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法。1.加减乘除2.设置精度3.取反加减乘除分别调用函数 public BigDecimal add(BigDecimal value); public BigDecimal subtract(BigDecimal value); public Big原创 2016-05-31 18:19:11 · 27581 阅读 · 4 评论 -
JavaMail发送邮件
注册找回密码之类的业务,经常需要发送邮件给用户,java如何实现发送邮件?首先引入mail.jar,然后创建相关的工具类。发送邮件的工具类:SimpleMailSender/** * 简单邮件(不带附件的邮件)发送器 * Created by xiaochun on 2016/3/10. */import java.io.UnsupportedEncodingExc原创 2016-03-30 23:04:38 · 865 阅读 · 5 评论 -
java获取当前时间的年周月季度等的开始结束时间
项目中常常用到,昵称一个月修改一次,活动一周参加一次等等类似的需求,索性把可能用到的所有方法都写出来,放在一个工具类里面。import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * Created by xiaochun on 2016/3/24. */publi原创 2016-03-30 23:04:14 · 8718 阅读 · 13 评论 -
dom4j读取xml总结
dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。 操作xml的方式有四种,dom、sax、jdom、dom4j。dom4j性能最好,连Sun的JAXM也在用dom4j.目前许多开源项目中大量采用dom4j,例如Hibernate也用dom4j来读取XML配置文件。下面是读取xml示例:xml文原创 2015-09-29 23:29:17 · 715 阅读 · 13 评论 -
怎样利用模板拼接字符串
近期的项目里在做消息的模块,负责系统内容的各种消息。有些消息的格式是固定的,每次改变的只是用户名等固定的几个字段。为了方便的维护这些消息,我们系统采用消息模板来实现。 例如:“尊敬的 #username# 您好,您购买的《#bookname#》交易成功!” 我们只要维护这个模板即可。那么发消息时,怎么将消息替换成相应的字段呢?对于不同的模板,有多个不同的参数该怎么办? 和消息相关原创 2015-10-18 10:24:09 · 3094 阅读 · 13 评论 -
带抽象方法的枚举
近期的项目里用到了枚举,用于列出消息的类型。最初我是这么写的但是在别人调用的时候总是总是 点+中文,组长说为了让我们的代码更加的具有通用性,更加国际化,要我想办法改成英文的。但是数据库只有一个字段, 有没有什么办法可以在写代码的时候用英文,而存储或显示的时候用中文呢?带抽象方法的枚举就派上了用途:原创 2015-10-25 20:15:19 · 874 阅读 · 18 评论 -
eclipse自定义new菜单
eclipse原始new菜单 由于开发项目类型不同,导致我们常用的new选项也会不同,所以需要我们自己定义选择我们常用的菜单项。步骤如下: 首先,选择window-->Customize Perspective: 打开Shortcuts选项卡,比如我经常用Interface、Class、Package,所以我找到java选项: O原创 2015-10-11 17:38:12 · 5231 阅读 · 14 评论 -
根据指定日期计算所在周一的日期
最近的项目里有有大转盘、刮刮卡之类的活动,这些活动需要指定一个参与频次,比如一天几次,或者一周几次,或者一个月几次。这一天的好办,直接查当天的参与记录数即可,一个月的也好办,时间截取月份即可。可这一周的该怎么办呢?private String convertWeekByDate(Date time) { SimpleDateFormat sdf=new SimpleDat原创 2015-12-31 22:27:25 · 1583 阅读 · 5 评论 -
红包算法
最近的项目里需要做一个红包。如何实现呢?下面是我的算法思路,希望大家积极提出宝贵意见。原创 2015-12-31 22:28:39 · 985 阅读 · 5 评论 -
vagrant简介
vagrant简介原创 2015-12-31 22:30:03 · 874 阅读 · 7 评论 -
java微信公众平台分享朋友圈
其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈。 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要修改一些配置。例如修改要分享内容的头像,链接,描述等。开发步骤:1.在公众平台配置js-sdk接口“公众号设置”——“功能设置”——“JS接口安全域名”2.在要分原创 2016-01-31 12:26:31 · 3233 阅读 · 8 评论 -
java微信公众号开发本地web调试
第一次做微信公众号开发,积累了些微信开发的经验,前段时间项目紧没有及时总结,之后逐渐总结出来分享给大家 做微信公众号开发,首先要解决的是怎么进行本地联调。总不能每次开发完代码,上传到服务器,然后通过日志来调代码吧。那样做会非常低效,而且团队这么多人,很不方便。 所以需要解决一个问题,就是每个人都需要一个域名,把自己的本地端口映射出去。期间试过花生壳、nat123等软件,总是出现掉线的情原创 2016-01-31 12:37:19 · 2178 阅读 · 8 评论 -
504 Gateway Time-out
项目开发差不多了,部署到生成环境时,一个同步的粉丝的功能报了一个错。 在粉丝数量只有几个几十个是没有问题的,但是当测试一个粉丝有5000的公众号时就出现如下的错误。 额,时间太久了,于是修改服务器配置 proxy_connect_timeout 1800; proxy_send_timeout 1800; proxy_read_timeout 1800;原创 2016-01-31 13:02:17 · 1780 阅读 · 7 评论 -
DES加解密
项目和其他公司合作,他们要调我们的充值接口,结果对方是.net平台,我们是java平台,导致DES加解密出现了些问题。于是乎,各种调啊,幸亏我也是.net出生,献上网上找的的代码,经测试可以使用。java代码:import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.cry原创 2015-12-31 22:29:23 · 820 阅读 · 7 评论 -
java读取配置中文乱码
这是我之前读取配置文件的工具类:import java.util.ResourceBundle;/** * Created by xiaochun on 2016/2/26. */public class ResourceUtil { private static final ResourceBundle bundle = java.util.ResourceBundle.g原创 2016-03-30 23:03:54 · 1335 阅读 · 6 评论 -
Linux如何修改密码
Linux如何修改root密码这里我们需要借助一个工具——putty。打开putty,界面如下:输入ip地址后确定,进入输入用户的界面:输入用户名密码,进入登录状态然后输入sudo passwd root进入输入新密码页面修改成功原创 2016-05-31 18:19:36 · 919 阅读 · 5 评论