自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (1)
  • 收藏
  • 关注

原创 多线程基础概念-上下文切换和死锁

多线程基础概念-上下文切换和死锁上下文切换###1. 什么是上下文切换cpu通过时间片分配算法来分配各个线程执行的时间。当一个线程执行了一个时间片之后就会切换到下一个线程的时间片。但是,在切换之前会保存当前线程的执行状态(程序计数器)以便于在切换回这个线程后能够继续上一个时间片执行。简单来说线程任务从保存到切换回来的这个过程就是一次上下文切换###2. 为什么上下文切换会影响线程执行速度...

2019-11-12 20:19:41 235

原创 Volatile关键字

Volatile关键字volatile关键字的作用是实现了共享变量在线程之间的可见性和防止指令的重排序。volatile分析在并发编程中有这样三个基本概念:原子性一个或者多个操作在执行过程中不会被打断。要么全部执行完毕,要么就全不执行。例如: i = x + 1 ; 这就不是一个原子操作。因为要执行上面的代码需要 首先读取X的值 , 然后把X的值加1 , 再将结果赋值给 i。volat...

2019-11-03 17:41:42 262

原创 Synchronized关键字

Synchronized关键字简单介绍java中的一个关键字,可作为方法,代码块的修饰符,目的是保证修饰范围(方法or代码块的生命周期)的线程安全性。synchronzed是互斥锁,它既能保证资源不能被多个线程同时占用,又能够保证资源在各线程之间的可见性。当一个线程试图进入到受保护的代码段落中,必须先获得到锁,待方法执行完成后,将锁释放。基本用法修饰普通方法public clas...

2019-07-24 14:00:51 222

原创 PL/SQL的包

PL/SQL的包本文将介绍PL/SQL的包的使用。 我写着文章的目的是为了在我阅读《Oracle.PL.SQL程序设计》一书是做些笔记,并分享给其他同学。 PL/SQL中包的作用所谓的包,就是把一组PL/SQL的代码元素组织起来,统一存放,它还具有隐藏逻辑,数据的能力。以及定义出拥有会话时间的生命周期的数据的能力。 包可以更容易的管理我们的程序(数据的封装),...

2018-03-07 11:20:02 349

原创 PL/SQL过程和函数以及参数

PL/SQL过程和函数PL/SQL中过程和函数设计的目的就是为了将代码模块化,有效的管理代码。 我写这篇文章的目的是为了在我阅读《Oracle.PL.SQL程序设计》一书是做些笔记,并分享给其他同学。 过程我们可以把过程理解为一个或者多个动作的集合,我们可以像是调用PL/SQL中可执行语句一样来调用过程。下面来介绍一下过程的格式。procedure [s...

2018-03-05 15:04:26 2233

原创 PL/SQL程序结构

PL/SQL程序结构本文将介绍PL/SQL的程序结构,将会涉及到分支和顺序结构,循环结构,异常处理等。 我写这篇文章的目的是为了在我阅读《Oracle.PL.SQL程序设计》一书是做些笔记,并分享给其他同学。 PL/SQL的分支和顺序结构IF 结构PL/SQL的IF结构主要是if…then…end if 结构,衍生出 if-else 还有 if-elsif-...

2018-03-03 23:12:41 1250

原创 PL/SQL语言基础

PL/SQL语言基础本文将介绍PL/SQL的语法,字符集等语言规则,可能初期还不理解,但随着学习的深入,将会逐渐理解PL/SQL。 我写着文章的目的是为了在我阅读《Oracle.PL.SQL程序设计》一书是做些笔记,并分享给其他同学。 PL/SQL的块结构pl/sql块由以下四个方面组成:块头(可选) 块头主要是确定pl/sql的名称,类型,参数,返回...

2018-03-02 15:41:25 876

原创 mybatis 分页参数 RowBounds

分页参数 RowBoundsmybatis不仅支持分页,它还内置一个专门处理分页的类 —— RowBounds源码。package org.apache.ibatis.session;/** * @author Clinton Begin */public class RowBounds { //设置默认偏移量和默认限制条数。 public static final int NO_ROW_

2017-09-19 22:01:14 2046

原创 mybatis 传递多个参数

mybatis传递多个参数在我们以前的例子中都是传递了一个参数,接下来将介绍传递多个参数的3种方式。map接口传递参数在mybatis中允许map接口通过键对值传递多个参数。 首先我们先编写映射器接口:public List<Role> findRolesByMap(Map<String,Object> paramMap);设置参数为map类型,然后编写映射文件 <select id="fi

2017-09-19 22:00:41 481

原创 mybatis 映射器的自动映射和驼峰映射

映射器的自动映射和驼峰映射mybatis提供了自动映射功能,在默认情况下是开启的。在setting中有两个可以配置的选项 autoMappingBehavior和mapUnderscoreToCamelCase。它们分别控制自动映射和驼峰式映射。 配置自动映射的取值范围是: - NONE 不自动进行映射 - PARTIAL 默认值,只对没有嵌套的结果集进行自动映射 - FULL 对于所有的

2017-09-19 21:59:56 9653 3

原创 mybatis 引入映射器的方法

引入映射器的方法引入映射器分为三种方式 1. 文件路径引入映射器<mappers> <mapper resource="com/test/model/LoginLogMapper.xml"/> </mappers>用包名引入映射器<mappers> <package name="com.test.model"/> </mappers>用类注册引

2017-09-19 21:59:28 1031

原创 mybatis environments

environments 运行环境在mybatis中运行环境主要是配置了数据库信息,他可以配置多个数据库。下面它有分为transactinManager 事务管理器 和dataSource 数据源 配置项。在实际工作中通常是采用Spring对这两个配置项进行管理。transactionManager 事务管理器在mybatis中,transactionManager 提供了两个实现类。但是他需要

2017-09-19 21:58:43 781

原创 mybatis typeHandler

typeHandler 类型转换器在传统的JDBC中,我们需要在PreparedStatement对象中设置我们的SQL语句,在执行SQL后通过Res0ultet对象获取从数据库得到的结果。然而在Mybatis中的数据转换是通过typeHandler来实现的。其中分为jdbcType和javaType。我们的typeHandler就是负责数据库类型和java类型之间的转换。在很多时候,我们不需要去设

2017-09-19 21:58:02 638

原创 mybatis typeAliases

typeAliases 别名由于类的全限定名很长,需要大量使用时,总是不大方便,所以mybatis提供了别名方式来解决这个问题。在Mybatis中别名由TypeAliasRegistry去定义。值得注意的是,在mybatis中别名不区分大小写 还记得在此前的文章中提供的mybatis实例中 <select id="findRoles" parameterType="string" resultTy

2017-09-19 21:56:42 621

原创 mybatis properties属性

mybatis properties属性properties属性 可以为系统配置一些运行参数,这些配置可以在xml中完成,也可以在properties文件中编写。在Mybatis中提供了三种方式让我们使用properties 1. property 子元素 2. properties文件 3. 程序代码传递property 子元素我们可以在properties中配置数据源信息,然后在配置环

2017-09-19 21:55:55 1502

原创 mybatis简单实例

mybatis简单实例在这个实例中主要总结了以下几点: 1. 映射器——接口和XML文件的关系 2. mybatis配置文件的编写 3. SqlSessionFactoryUtils的单例设计模式 4. SqlSession的try … finally 结构,确保其正确关闭目录结以及log4j配置目录结构:log4j配置:# Global logging configurationlog4

2017-09-15 12:44:45 403

原创 Mybatis组件与其生命周期

Mybatis组件与其生命周期Mybatis组件介绍SqlSessionFactoryBuilder : 构造器,它会根据配置或者代码来生成SqlsessionFactory,采用分布构建Builder模式(建造者模式)。SqlSessionFactory : 工厂接口,依靠它来生成SqlSession,使用的是工厂模式。SqlSession : 会话,既可以发送sql语句,也可以获得ma

2017-09-15 12:23:41 350

原创 简单理解观察者模式

观察者模式是一种一对多的依赖关系,设置了多个观察者对象来监视被观察对象的状态,当被观察对象发生变化时候,通知所有观察对象来相应这种变化。 Observable 被观察对象需要继承此类,以下方法均为此类方法            1. 新增观察者方法     addObserve            2. 标志被观察者变化    setChange            3. 告知观察者     

2017-09-14 13:17:10 332

原创 拦截器与动态代理

拦截器与动态代理在开发中动态代理比较难以理解,程序设计者会设计一个拦截器接口供实际开发者使用,开发者只需要知道接口中方法的含义以及作用即可,无须考虑动态代理如何实现。首先,我们先定义一个拦截器接口import java.lang.reflect.Method;public interface Interceptor { /** * * @param proxy 代理对象

2017-09-12 16:50:29 751

原创 JDK动态代理的实现

JDK动态代理是借助java.lang.reflect.*包提供的方式,它必须借助一个接口才能产生代理对象。public interface HelloWorld { public void sayHelloWorld();}public class HelloWorldImpl implements HelloWorld { @Override public void sayHe

2017-09-11 18:38:56 299

原创 简单理解java反射机制

简单理解java反射技术我理解的反射技术就是在运行时从内存中获得取得指定类的对象并得到其全部内容。百度百科定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 获得class对象的三种方法: 1. 通过Class类中的静态方法forName。(通

2017-09-10 19:03:22 1891

原创 Mybatis 模糊查询和动态sql语句

Mybatis 模糊查询和动态sql语句模糊查询 对数据库最常用的操作就是查询了,但是如何使用Mybatis进行模糊查询呢?下面先看一个简单的模糊查询 <select id="select01" resultMap="BasicResultMap"> SELECT * FROM oa_employee WHERE emp_name

2017-05-03 15:44:46 8219

原创 Mybatis XML映射文件

Mybatis XML映射文件 在 Mybatis 中映射文件主要是用于编写SQL语句,通过SqlSession的实例进行定位执行。其中定位是通过 “mapper”标签的namespace属性来确定是哪一个映射文件,再通过每个元素的”id”属性确定哪一个SQL语句。下面是“增 删 改 查”操作对应的元素名称。 insert – 映射插入语句 delete – 映射删除语句

2017-05-03 10:38:51 913

原创 Mybatis简单搭建环境

Mybatis简单搭建环境 1.使用mybatis框架我们需要三个jar包 log4j-1.2.17.jar log4j日志包 mybatis-3.4.2.jar mybatis核心包 mysql-connector-java-5.1.39.jar 数据库驱动包 将这三个jar包放入lib文件夹中。然后开始

2017-04-20 20:41:11 442

原创 奇数幻方和双偶幻方(java实现)

奇数幻方和双偶幻方(java实现)奇数幻方

2017-04-17 17:47:41 999

原创 队列的应用——火车重排(java实现)

队列的应用——火车重排(java实现)问题描述 一列火车有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号为1~n,为了使一列火车在行驶途中每经过一个车站,就将车厢编号与车站编号一致的车厢卸下,所以给定一个乱序的车厢序列应配合缓冲轨道按车厢号从1-n顺序排放。 程序伪代码1.初始化k个缓冲轨道;2.初始化即将要输出的火车编号 nowOut = 1;3.依次取出入轨的车厢号now

2017-04-15 14:21:10 2536

原创 中缀表达式转换后缀表达式并求值(java实现)

中缀表达式转换后缀表达式并求值(java实现)中缀表达式转换后缀表达式 为了处理方便,编译程序通常把中缀表达式转化为后缀表达式,后缀表达式也称为“逆波兰式”指代双目运算符在两个运算对象的后面,例如:49*23+。 程序伪代码1.实例化一个空栈S2.扫描容器中的字符,执行以下操作 2.1若当前字符是运算对象即数字,则存入后缀表达式容器。 2.2若当前字符是运

2017-04-15 13:55:17 888

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除