- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 Mybatis中mapper文件传参方式(2种方式)
很长时间没有研究Mybatis了,之前工作Hibernate框架用的较多一些,今天遇到一个有趣的问题,话不多说,直接上代码:public interface BusinessDepartmentMapper { Long insert(@Param("record")BusinessDepartment record); Long updateByPrimaryKey(BusinessD
2017-05-08 20:11:54 1739
原创 IDEA2017激活(给力)
进入ide主页面,help-register-license server,然后输入 http://idea.iteblog.com/key.php(注意:php要小写)
2017-05-03 23:02:57 571
原创 @Transactional注解初见
之前一直使用声明式事务,切面编程的配置方式让编程者忘记了事务的存在,一旦离开,发现这个事务还是蛮重要的;刚刚加入新公司,在这里大家热爱编程式事务或者注解式事务,这里简单了解一下@Transactional注解的使用:public interface userService { public void A(); public void B();}@Transactionalpu
2017-05-03 22:51:11 429
原创 @Resource和@Autowired区别
1.@Resource @Resource注解来着J2EE,优先使用byName方式进行注入,如果没有则在使用byType方式注入; 2.@Autowired @Autowired来自Spring,优先使用byType方式进行注入,如果没有则在使用byName方式注入; @Autowired private UserService userSer
2017-05-03 22:32:30 271
转载 <转>全面分析 Spring 的编程式事务管理及声明式事务管理
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务。通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之。 先决条件 本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解。您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等。本文将直接使用这些概念而不做详细解释。另外,您
2017-04-18 12:53:01 299
原创 二叉树遍历(递归与非递归实现)
二叉树的遍历:public class TreeNode { public String key; public String val; public TreeNode left; public TreeNode right;}递归遍历: /** 递归实现中序遍历 */ public static void iterativeInorder(TreeN
2017-04-16 22:01:34 400
翻译 单例模式实现:枚举单例
代码实践:public enum SingletonEnum { INSTANCE; Object object; SingletonEnum() { object = new Object(); } public Object getInstance(){ return object; }}测试:public class
2017-04-16 13:26:39 414
原创 排序(Java实践)
算法可以运用到我们实际开发中,帮助我们迅速开发,今天学习排序: 1.快速排序: 所谓快速排序,就是将第n个元素分别与它后面的元素进行比较,较小交换位置放在前面: 这里是一个开发的工具类:public class SortUtils { public static void change(int[] arr, int i, int j){ int temp = arr[i
2017-04-16 10:12:26 233
原创 百度面试:查找是否存在某元素
查找是否存在某元素: int[] target = new int[]{1,2,3,4,5,7,8,9};需求:查找某元素返回true 或false,使用最优算法: 算法我只会二分法,应该还有别的算法更好,实现如下: public static Boolean isHaveVal(int[] target, int value){ int min = 0; in
2017-04-11 11:47:11 240
原创 百度面试:链表翻转
翻转链表: Node类:public class Node { private int value; private Node next;}需求: public static void main(String[] args) { Node node1 = new Node(1); Node node2 = new Node(2);
2017-04-11 10:54:17 391
原创 浅谈GC(最后更新时间:20170328)
说道GC,不得不提及一下内存模型,JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(Non-heap Memory)是在JVM堆之外的内存。 简单来说,堆是Java代码可及的内存,留给开发人员使用的;非堆是JVM留给自己用的,包含方法区、JVM内部处理或优化所需的内存(如 JIT Compiler,Just-in-time Compi
2017-03-28 22:49:25 329
原创 CAS如何保证安全性?(最后更新时间:20170328)
CAS是compareAndSwap的缩写,是Unsafe类中的方法,我们来看源码: /** * Atomically sets the value to the given updated value * if the current value {@code ==} the expected value. * * @param expect the
2017-03-28 18:59:39 1466
原创 Object finalnize()方法学习
Object对象中包含了一个用来回收堆中对象的方法,finalnize(),显示调用该方法并不一定会触发GC的回收,下面我们通过实验查看finalnize()方法工作机制;public class LoanProduct { @Override protected void finalize() throws Throwable { System.out.println
2017-03-25 22:32:39 504
原创 AtomicInteger线程安全的实现机制
java在concurrent包下提供了线程安全的int包装类,AtomicInteger,接下来我们就讲讲AtomicInteger的实现原理:public class AtomicInteger extends Number implements java.io.Serializable { private volatile int value;AtomicInteger 类中的valu
2017-03-24 22:28:25 3088
原创 mysql面试题
SELECT * FROM dbn_binding_user_data b JOIN dbn_person_credit p ON p.bo_id_person = b.person_id AND b.audit_status = ‘approve’ AND b.is_enabled = 1 JOIN dbn_person_information_v t4 ON
2017-03-24 14:27:44 409
原创 事物底层实现
关于mysql支持的事物底层是如何实现的: 1.mysql事物显示配置: Transaction.begin(); //TODO 增删改查 Transaction.commit();显示配置事物; 2.声明式事务的配置: spring提供了声明式事务的配置,基于AOP实现了,在Adivice(通知)中添加需要实现的逻辑代码: 如@Before中添加:Transacti
2017-03-23 23:01:00 449
原创 mysql锁机制
mysql提供了行锁,表锁以及叶锁;其中,InnoDB引擎采用了表锁的行锁机制; 行锁很容易有死锁的问题,当两个session同时进入该行数据的时候,会造成所竞争,同时事物也会锁定;
2017-03-23 22:52:24 451
原创 dubbo原理
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合),比如表现层和业务层就需要解耦合。 从面向服务的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 除了以上两个角色,
2017-03-23 21:30:05 356
原创 Sping对事物的支持
Spring的事物通过它下面的tx组件实现,首先我们找到平台事物管理器: 这里是他的接口清单: PlatformTransactionManager.java*TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException;*void commit(Transactio
2017-03-18 17:20:48 345
原创 Hibernate named parameter 传参书写方式,同样Hibernate帮我们做了预编译,可以防止sql注入,同时可以一定程度上加快sql执行效率,也利于后期维护
1.当传入参数有多个的时候,使用Hibernate的named parameter方式是一种较好的选择,利于后期的维护; 2.实现方式:使用:name 来进行传入参数,使用sqlQuery对象的setParameter方法传入参数,同时兼顾list类型以及普通数据类型; 3.注意使用时的空格标识符的添加,否则IDE可能会提示,如果不提示,那就只能在运行时抛出异常了; 4.厉害了我的Hibe
2017-03-17 14:40:43 1234
原创 一个有趣的遭遇:dubbo超时追踪出来的httpclient超时问题
开完早会,像往常一样打开我的SecureCRT,一个个点开线上的日志~惊!!!!全是bug: <dubbo:reference id="outerInformationService" interface="com.dbn.remote.service.OuterInformationService" check="false" retries="0" timeout="200000"/>按理说,
2017-02-13 16:08:28 1154
原创 使用Future接口进行多线程报表查询
报表查询中,可能涉及过多业务,在sql优化以后,仍然存在查询过慢,导致串行查询不适用情况,引入Future接口进行多线程查询,实现快速生成报表;//利用多线程查询数据 ThreadPoolExecutor threadPool = ImportDataThreadPoolUtil.getInstance(); //期初数 Rep
2017-02-10 17:19:12 748
原创 Hibernate 报错:Batch update returned unexpected row count from update [0]; actual row count
使用Hibernate的saveOrUpdateAll()方法时,报错:Batch update returned unexpected row count from update [0]; actual row count;错误原因:主键人工给定,而hbm文件则使用了native生成策略,改为:assigned;
2017-02-09 13:34:09 2187
原创 mysql添加索引
ALTER TABLE `dbn_organization_relation_v` ADD INDEX cust_organization_id_index ( `cust_organization_id` );其中dbn_organization_relation_v 是表名,cust_organization_id_index 是索引名称,cust_organization_id是需要添加索引
2017-02-08 16:16:41 296
原创 Hibernate如何使用in关键字
Hibernate虽然使用的是HQL语句,有时难免会觉得不够智能,其实没有发现Hibernate设计者的全面性; 比如in关键字,正确的使用方法是://获取id集合List<Integer> menuIds = this.getSession().createSQLQuery(concatSql).setParameter(0,userId).list();//查询菜单对象
2017-01-23 13:26:05 9853
原创 idea多线程debug问题
由于idea支持主线程和多线程的debug模式,所以在进行多线程debug时,需要对断点进行设置: 如图:通过点击左下角的红色按钮,我们可以找到指定的断点,对当前断点进行设置,如果是All,则是在主线程上进行断点,而选择Thread,就可以在当前线程进行断点;
2016-12-30 17:09:13 1304
原创 Callable与Future
Callable与Future 使用线程池来创建并行的任务: 这个一个简单的demo,可以在最后统一获取执行结果;以此类推ExecutorService threadPool = Executors.newFixedThreadPool(2); Future<Integer> future = threadPool.submit(new Callable<Integer>() {
2016-12-30 17:03:35 340
原创 报错:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named
mybatis报这个错误是因为字段名称写错: #{personCredit.mainBusinessVariety}写成了#{personCredit.main_business_variety},是一个比较低级的错误~
2016-12-28 09:33:03 2233 1
原创 根据pdf模板填充相应的值不换行问题
使用pdf模板填写表单的时候,由于表单的表单域是固定的,切大小没有改变,所以即使加上了“\n”也无法换行。解决方法:adobe Acrobat XI Pro软件可以编辑模板,调整模板的表单域的属性:如图所示。
2016-12-06 13:57:23 3417 7
原创 jquery实现价格累加显示效果
HTML页面:<table cellpadding="0" cellspacing="0" class="t_center m_table"> <thead> <tr class="white"> <td ><input type="checkbox" style="margin:0
2016-09-01 14:55:40 1005
原创 使用httpclient获取其他网站数据(含解析验证码)
**使用httpclient获取其他网站数据**使用httpclient模拟浏览器请求网站加载个人诉讼记录信息接口; 总结:1.系统如果上线,linux系统中使用了python命令来识别验证码,先将验证码保存在本地,识别完成后删除; 2.如果是在windows系统上运行该系统,提供了一个OCR的封装类,直接调用即可识别验证码;import com.alibaba.fastjso
2016-08-31 15:18:38 757
原创 host parameter is null 错误!
出现这种错误:在使用httpclient执行请求的时候,host地址参数有错误造成;原因:1,URL地址记得加上:HTTP:// 2,参数地址通过@value读取配置文件,但是注解并未生效,在web.xml中配置包扫描即可;
2016-08-31 14:38:45 21648 1
Java并发编程的艺术
2018-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人