首先恭喜自己拿到深圳京东的实习offer,是一个好的开端,但也有了更高的目标。从寒假到现在,经历了分手和不计其数的refuse,腾讯、阿里、携程等等等等,暴瘦15斤。还好,最后有幸被jd看中,然后递交了入职申请,准备5.11号的入职,我的春招也就告一段落了。下面还是分享总结一下这次在春招大战中学到感受到的一些东西。

阅读全文 »

环境jdk8 + npm5.6 + elasticsearch-6.2.3 + elastichead
搭建过程这里不赘述了
master节点下的配置文件:

http.cors.enabled: true
http.cors.allow-origin: "*"

cluster.name: hoaresky
node.name: master
node.master: true

network.host: 127.0.0.1

slave的配置文件:

cluster.name: hoaresky
node.name: slave1

network.host: 127.0.0.1
http.port: 8200

discovery.zen.ping.unicast.hosts: ['127.0.0.1']

elasticsearch-head插件的配置文件是根目录下的:Gruntfile.js



阅读全文 »

一、单个参数:

public List<XXBean> getXXBeanList(String xxCode);  

<select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">

  select t.* from tableName t where t.id= #{id}  

</select>  

其中方法名和ID一致,#{}中的参数名与方法中的参数名一直, 我这里采用的是XXXBean是采用的短名字,

select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 来补充。

二、多参数:

public List<XXXBean> getXXXBeanList(String xxId, String xxCode);  

<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where id = #{0} and name = #{1}  

</select>  

由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
复制代码

三、Map封装多参数:

public List<XXXBean> getXXXBeanList(HashMap map);  

<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">

  select 字段... from XXX where id=#{xxId} code = #{xxCode}  

</select>  

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个,map如何封装就不用了我说了吧。

四、List封装in:

public List<XXXBean> getXXXBeanList(List<String> list);  

<select id="getXXXBeanList" resultType="XXBean">
  select 字段... from XXX where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}  
  </foreach>  
</select>  

foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4')

五、多参数传递之注解方式示:

例子:

public AddrInfo getAddrInfo(@Param("corpId")int corpId, @Param("addrId")int addrId);

xml配置这样写:

<select id="getAddrInfo"  resultMap="com.xxx.xxx.AddrInfo">
       SELECT * FROM addr__info 
    where addr_id=#{addrId} and corp_id=#{corpId}
</select>

以前在mybatis select语句中要带parameterType的,现在可以不要这样写。

六、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法:

将参数放入Map,再取出Map中的List遍历。如下:

List<String> list_3 = new ArrayList<String>();
Map<String, Object> map2 = new HashMap<String, Object>();

list.add("1");
list.add("2");
map2.put("list", list); //网址id

map2.put("siteTag", "0");//网址类型

 

public List<SysWeb> getSysInfo(Map<String, Object> map2) {
  return getSqlSession().selectList("sysweb.getSysInfo", map2);
}
 


<select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">
  select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPath
   from TD_WEB_SYSSITE t
   left join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10
   WHERE t.siteTag = #{siteTag } 
   and t.sysSiteId not in 
   <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
       #{item}
   </foreach>
 </select>

哇好久没写博客了!本来想早早睡觉的,舍友还在噼里啪啦的吃鸡!反正睡不着还是敲代码。在最近这个项目中,涉及一个对课程生成一个邀请码,加入这个课程必须输入邀请码才行。那么这里就涉及到如何涉及一个较短的最好是英文和数字组成的不重复的邀请码!对于这个场景,我给出的解决方案就是随机字符串+课程id就好了,id本身就不会重复,这里这个问题就这样轻松的解决了!
但这里有一个问题,这里在生成这个邀请码的时候,我们需要对数据库进行一次查询,得到id之后才能生成邀请码,这样对数据库的一次查询操作,虽然在这个学校的小型项目看起来不起眼,但是如果在高并发的场景下,这样的效率还是比较低的!
我经过查找资料,一般有以下几种生成不重复的随机码的方法:



阅读全文 »

最近在学习过程中是始终不能很好的定义VO DTO这些对象,在百度看到一篇写的很好的文章,特转过来!
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。






阅读全文 »