问题: 项目中目前使用mybatis操作数据库,使用插件(mybatis-generator)自动生成代码,对于增改查,使用存储过程实现了一版本,方便使用. insert代码生成器用法: insert_code_generator( in_var_tbl_name   [要插入的表名] ) 1 DROP PROCEDURE IF EXISTS insert_code_generator; 2 DELIMITER %% 3 CREATE PROCEDURE insert_code_generato…
一.MyBatis缓存 缓存可以提高系统性能,可以加快访问速度,减轻服务器压力,带来更好的用户体验.缓存用空间换时间,好的缓存是缓存命中率高的且数据量小的.缓存是一种非常重要的技术. 1.0.再次封装SqlSessionFactoryUtils 为了配置缓存的学习我们将工具类再次封装. 原SqlSessionFactoryUtil工具类如下: package com.zhangguo.mybatis03.utils; import org.apache.ibatis.session.SqlSes…
基于Mybatis的Dao层开发 SqlSessionFactoryBuilder用于创建SqlSessionFacoty,SqlSessionFacoty一旦创建完成就不需要SqlSessionFactoryBuilder了,因为SqlSession是通过SqlSessionFactory生产,所以可以将SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量. SqlSessionFactory是一个接口,接口中定义了openSession…
 转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了.发片帖子纪念下,也给不懂存储过程的但是要调用的人一些提示 首先介绍下存储过程(本人是不会写的,但是目前能看懂)   create or replace procedure P_DAP_UNI_CUBE_INFO(V_CUBE_NAME IN VARCHAR2, --每个参数都有三部分 形参 in/…
MyBatis框架的使用,可以参考我的文章: https://blog.csdn.net/JayInnn/article/details/81746571(基于Mybatis实现一个查库的接口) https://blog.csdn.net/JayInnn/article/details/81773073(mapper接口文件以及selectByExample类的实例函数详解) 为了深入的去了解MyBatis框架如何实现接口服务与数据库的交互,我们如果能够自己配置一下数据库XML配置文件就会对这个…
SSM开发Web的框架已经很成熟了,成熟得以至于有点落后了.虽然如今是SOA架构大行其道,微服务铺天盖地的时代,不过因为仍有大量的企业开发依赖于SSM,本文简单对基于SSM的Java开发做一快速入门,方便读者尽快把握脉络,理解Java Web开发的主轴,便于做进一步深入学习. 关于第一代MVC开发可见:JavaWeb开发之详解Servlet及Servlet容器 SpringMVC 跟许多MVC框架一样,SpringMVC底层依赖Servlet实现底层HTTP请求的处理.不久前Spring 5.0…
基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 --><dependency>    <groupId>com.github.pagehelper</groupId>    <artifactId>pagehelper</artifactId>    <version>4.0.…
转自:https://www.cnblogs.com/rodge-run/p/6528398.html 基于Mybatis的Dao层开发 SqlSessionFactoryBuilder用于创建 SqlSessionFacoty,SqlSessionFacoty一旦创建完成就不需要SqlSessionFactoryBuilder了,因为 SqlSession是通过SqlSessionFactory生产,所以可以将SqlSessionFactoryBuilder当成一个工具类使用, 最佳使用范围是…
学习笔记,选自Mybatis官方中文文档:http://www.mybatis.org/mybatis-3/zh/java-api.html#directoryStructure 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护.MyBatis 3 已经引入 了很多重要的改进来使得 S…
一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquibase/config/ 文件夹下配置文件dev.properties, local.properties, 分别代表开发环境和本机环境的数据库信息. 2.确定liquibase作用于哪一个环境的数据库. 配置pom.xml文件中的property: db.profile 的值,比如 <db.profi…
u  基于Mybatis的CRUD u  掌握MyBatis的结果类型-resultMap和resultType u  掌握MyBatis的参数类型 u  掌握#和$两种语法 1      基于mybatis的CRUD 1.1   StudentDAO public interface StudentDao { public void insertStudent(Student s); public void updateStudent(Student s); public void delet…
原文地址:http://zhaoshijie.iteye.com/blog/2003209 关键字:Mybatis通用DAO设计封装(mybatis) 说明: mybatis默认分页机制为逻辑分页,所以要处理成物理分页需要自己写一个拦截器(当然也可以不用这个分页机制,自己直接在SQL文件中实现也是可以的) RowBounds rowBound = new RowBounds(start, pageSize); 具体封装如下: package util.dao.impl; import java.…
前言 越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing).容错(Fault Tolerance)和灾难恢复(Failover).以达到系统可用性(High Availability)和可伸缩性(Scalability)的要求. 关于J2EE集群技术的基本原理和常用实现方式,TheServerSide.com有一篇经典的文章:http://www.theserverside.com/tt/articles/article.tss?l=J2EEClustering…
一.Java如何实现对存储过程的调用: A:不带输出参数的 create procedure getsum <--此处为参数--> as declare @sum int<--定义变量--> declare @i int while @i<=@n begin set @sum=@sum+@i end print 'the sum is '+ltrim(rtrim(str(@sum))) 在SQL中执行: 在JAVA中调用: JAVA可以调用 但是在JAVA程序却不能去显示该存…
本文将介绍Java怎样实现对存数过程的调用方法,作者用了几个样例进行了具体的说明,简单明了,很适合刚開始学习的人. 一.Java怎样实现对存储过程的调用: A:不带输出參数的 create procedure getsum @n int =0<--此处为參数--> as declare @sum int<--定义变量--> declare @i int set @sum=0 set @i=0 while @i<=@n begin set @sum=@sum+@i set @i…
Java:面向对象编程语言,吸收了C++语言的各种优点,丢掉了C++让人头疼的多继承.指针等概念.具有功能强大和简单易用的两大特征.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点. JavaScript:直译式脚本语言,一种动态类型.弱类型.基于原型的语言,内置支持类型.其解释器叫做JavaScript引擎,是浏览器的一部分,较多的用在客户端的脚本语言.是一种解释性脚本语言.可为页面添加交互行为.可直接嵌入HTML页面.具有跨平台型,可在多种平台下…
Mybatis Mapper.java和Mapper.xml是能分离的. 从图上不难看出,不管是/java还是/resources,他们最终编译后的存放路径均是/target/classes 因此将xml和java分开就成了一件简单的事了 方法: 只需要在resource目录下创建和java下的mapper.java相同的路径,然后将对应的mapper.xml放入该目录下就行了 ok完事...…
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.StringWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java…
基于Mapxtreme for JAVA的电子地图设计与实现学生毕业设计,适合测绘类专业研究目标:        开发一个基于MapXtreme for JAVA的校园电子地图项目,使用MapInfo来绘制地图使用户能够实时的了解华南理工大学广州学院校园及周边的地理信息. 研究内容:      校园电子地图系统共分为4个功能模块来实现:      1.地图放大.缩小及漫游的功能模块:为了能够清晰的查看地图的某一角落的详细信息,了解学校的地理位置以及学校的地理规划.用户可以在电子地图上对感兴趣的地…
Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Watch:监控端 package com.huhu.zookeeper; import java.util.concurrent.CountDownLatch; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.…
Linux -- 基于zookeeper的java api 首先启动你所有的 zkService.sh 查看状态:检查是否启动正确 [root@hu-hadoop2 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.7/bin/../conf/zoo.cfg Mode: leader 然后启动成功后在eclipse中建一个demo.我们来玩一下基于zooke…
平时咱们写程序实体类内或多或少都会有枚举类型属性,方便嘛.但是mybatis里怎么处理他们的增删改查呢? 要求: 插入的时候,会用枚举的定义插入数据库,我们希望在数据库中看到的是数字或者其他东西: 查询的时候,数据库的值可以自动转换为我们对应的枚举值. 举例,我有一个这样的枚举类型: Java Code复制内容到剪贴板 ), ); private int status; UserStatus(int status){ this.status = status; } public int getS…
分表:垂直拆分.水平拆分 垂直拆分:根据业务将一个表拆分为多个表. 如:将经常和不常访问的字段拆分至不同的表中.由于与业务关系密切,目前的分库分表产品均使用水平拆分方式. 水平拆分:根据分片算法将一个表拆分为多个表. 如:按照ID的最后一位以3取余,尾数是1的放入第1个库(表),尾数是2的放入第2个库(表)等. 解决的问题:单纯的分表可以解决数据量过大导致检索变慢的问题. 分表无法解决过多并发请求访问同一个库,导致数据库响应变慢的问题.所以通常水平拆分都至少要采用分库的方式,用于一并解决大数据量…
一.环境准备 登录Oracle数据库scott账号,利用emp进行操作. 1.创建 proc_getyearsal 存储过程 -- 获取指定员工年薪 create or replace procedure proc_getyearsal(vempno in number,vyearsal out number) is begin ) into vyearsal from emp where empno=vempno; end; 2.创建 proc_gettemps 存储过程(游标) create…
mybatis使用java实体中定义的常量 示例代码: <select id="findDealerInfo" parameterType="com.pisen.cloud.luna.ms.dealer.api.beans.DealerInfoBean" resultType="com.pisen.cloud.luna.ms.dealer.api.beans.DealerInfoBean"> SELECT dea.uid uid, d…
参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.util.Date;import java.util.Properties; import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Message.RecipientTyp…
java代码生成二维码一般步骤 常用的是Google的Zxing来生成二维码,生成的一般步骤如下: 一.下载zxing-core的jar包: 二.需要创建一个MatrixToImageWriter类,此类google的源码中提供了,为了使用方便,下面是类中的代码,可以直接复制来使用: private static final int BLACK = 0xFF000000; private static final int WHITE = 0xFFFFFFFF; private MatrixToI…
实现了基于TCP的Java Socket编程,功能很简单:客户端向服务器端输出一名话"connect",服务器端接收输出到控制台并向客户端输出一名话"Hello",客户端接收并输出. 1.服务器端 package javase.net.socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.I…
持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据.一般执行持久任务的都是数据库系统.持久层可以使用巨大的磁盘空间,也比较廉价,它的确定就是比较慢. Mybatis成为java互联网时代首选的持久框架 原因: 1. 不屏蔽SQL ,意味着可以更精确地定位sql语句,可以对其进行优化和改造,这有利于互联网系统性能的提高,符合互联网需要性能优化的特点. 2. 提供强大.灵活的映射机制,方便j…
上节我们介绍了基于Thrift实现java与java的RPC调用,本节我们基于Thrift实现Java与Python的RPC调用 首先,修改data.thirft文件,将命名空间由java改为py namespace py thrift.generated 然后打开终端,输入命令 thrift --gen py src/thrift/data.thrift 生成Python代码 打开Pycharm,新建Pure Python项目,将在idea中生成的python文件拷贝至Pycharm中 编写p…