One of the latest MyBatis feature is the ability to use Annotations or XML to do One-to-One or One-to-Many queries. Let's start with an example, as usual im using PostgreSQL, Netbeans 6.9 and MyBatis 3.0.2. First is a simple database with 2 different…
As discussed in the previous chapter, MyBatis simplifies the persistent logic implementation by abstracting JDBC. MyBatis uses JDBC under the hood and provides simpler ways to implement database operations. When MyBatis executes an INSERT statement b…
程序员应该将核心关注点放在业务上,而不应该将时间过多的浪费在CRUD中,多数的ORM框架都把增加.修改与删除做得非常不错了,然后数据库中查询无疑是使用频次最高.复杂度大.与性能密切相关的操作,我们希望得到一种使用方便,查询灵活的ORM框架,MyBatis可以满足这些要求,MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,它也是SSM框架集成中的重要组成部分. 一.ORM 1.1.ORM简介 ORM可以解决数据库与程序间的异构性,比如在Java中我们使用String表示字…
Windows with C++ Exploring Fonts with DirectWrite and Modern C++ Kenny Kerr DirectWrite is an incredibly powerful text layout API. It powers practically all of the leading Windows applications and technologies, from the Windows Runtime (WinRT) implem…
先来看看效果图吧,嘻嘻~~~~~~~~~~~~~~~~~~~· 代码在下面: 示例一: html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>省市区三级联动,可自动补全</title> <link href="css/select.css" rel="stylesheet" /> <…
最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键id到实体bean中了.而这些问题在XML配置中都不存在.一方面可能是我能力有限,没有找到合适的解决方案:另一方面可能与MyBatis自身对Java中注解的支持不够给力有关系. 以下是MyBatis官网对Mapper Annotations的解释: Mapper Annotations Since the ve…
原文链接 最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键id到实体bean中了.而这些问题在XML配置中都不存在.一方面可能是我能力有限,没有找到合适的解决方案:另一方面可能与MyBatis自身对Java中注解的支持不够给力有关系. 以下是MyBatis官网对Mapper Annotations的解释: Mapper Annotations Since t…
改造特性: 适应业务需要,选项里面包含“其他”其它”,可以点击填写并设置自定义选项 效果图: 具体代码不做阐述,如有类似需求,请私信.主要源码: /* Copyright 2012 Igor Vaynberg Version: 3.4.5 Timestamp: Mon Nov 4 08:22:42 PST 2013 This software is licensed under the Apache License, Version 2.0 (the "Apache License")…
There are several reasons why it makes sense to build super-lightweight HTTP services (or, despite all the baggage the word brings, “microservices”). I do not need to go into all the operational or architectural benefits of such approach to system de…
主文件 package cn.com.sxp;import android.app.Activity;import android.media.AudioManager;import android.media.MediaPlayer;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceVie…
Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中会发现Intellij IDEA也有一些不尽如意的地方,难免会有些不爽:Intellij IDEA 的插件库远不及eclipse的丰富. mybatis-generator在eclipse中有专门的插件,而没有开发出Intellij IDEA能够使用的插件. 不过不用灰心,如果你的项目是使用mave…
在mybatis中,我们都只需要定义一个mapper接口,但并不需要对它进行任务实现.只要有对就的mapper.xml文件就可以访问数据库.那么,没有接口的访问是如何实现的呢. 答案就是JDK proxy.mybatis统一用代理类来写接口实现.在代理类中,实现读取配置文件并访问数据库存的操作. 现在我们来模拟一下,如何用代理类实现接口 1.定义接口,一个求各的方法 public interface FacadeCalculate { int add(int a,int b); } 2.定义一个…
XML 映射配置文件 MyBatis 的配置文件包含了设置(settings)和属性(properties)信息. properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递.例如: <properties resource="org/mybatis/example/config.properties"> <property name="username"…
MyBatis mybatis和hibernate都属于orm(对象与关系映射) 框架 mybatis的优点: 1.sql-mapping :操作更自由,可控性高,执行效率更高 2.轻量,学习更容易 3.维护和修改容易 mybatis使用场合: 在不需要太多复杂的功能,且需要性能更高,并且希望更灵活可以使用mybatis 什么时候不宜使用mybatis: 对象持久化对程序完全透明时,使用hibernate 当数据有移植需求且需要支持多种数据库是 当应用程序要求完全动态sql时 没有使用关系数据库…
iBatis(MyBatis)开启缓存后,通过外部程序修改或者删除数据库记录,如何让Cache清除?5 当其外部的数据库连接甚至是数据库管理系统,对数据库进行了更改,iBatis(MyBatis)的缓存如果没有过期,是不会对数据库的修改做出相应的?这一点有什么好的解决方案? 再简单的描述一下(假设数据库系统为MySQL),例如有一个Java的应用持久层框架是使用iBatis(MyBatis)有一个每个500ms(毫秒)调用一次对数据库中ID为100的记录进行 select 操作,由于缓存的时间很…
resultType:直接表示返回类型 resultMap:对外部resultMap的引用 二者不能同时使用 创建一个实体类Role和User public class Role { private Integer id; private String roleCode; private String roleName; //省略set.get方法 创建User类(在User中有roleId   1对多关系) public class User { private Integer id; pri…
这2种方法的区别:1.添加接口 2.运用接口来实现 其他的都一样 添加接口 //接口的名字和xml的名字一样,这样xml中的namespace就不用改 public interface UserMapper { //接口名的方法名一定要和xml中的id名一样 public int count(); public void add(User user); public void update(User user); public void delete(User user); public Lis…
在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 如果我要调用mapper文件,就去拿到names…
MyBatis supports persisting enum type properties out of the box. Assume that the STUDENTS table has a column gender of the type varchar to store either MALE or FEMALE as the value. And, the Student object has a gender property that is of the type enu…
场景:一个人有多个手机号,一个手机号对应一个人 CREATE TABLE test.mobile ( mid INT NOT NULL auto_increment, tel ), pid INT, PRIMARY KEY (mid) ); CREATE TABLE test.person ( pid INT NOT NULL auto_increment, name ), PRIMARY KEY (pid) ); INSERT INTO test.person (name) VALUES ('…
今天把notice表中的content字段改为long字段后,含有该字段的使用CTE的查询语句报错了.提示一下错误 ### Cause: java.sql.SQLException: 流已被关闭 ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭] with root cause…
标题 Error when launching Quest Central for DB2: "QCC10000E - Unable to allocate environment handle fo 说明 Error when launching Quest Central for DB2: "QCC10000E - Unable to allocate environment handle for DBConnect". 原因 Windows system path do…
在上一篇博客<mybatis源代码分析:深入了解mybatis延迟加载机制>讲诉了mybatis延迟加载的具体机制及实现原理. 可以看出,如果查询结果对象中有一个属性是需要延迟加载的,那整个结果对象就是一个代理对象,后面对这个对象的访问,都是通过代理对象去访问的,那是否有更好的方法呢? 答案是有的. Student对象关联Teacher对象,需要对Teacher对象延迟加载. 一种方式就是mybatis当前的这种做法,对Student进行代理,当访问到getTeacher时就进行延迟加载,设置…
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 框架整体结构图: 关键代码介绍 1.ICatagoryOperation接口 public interface ICatagoryOperation { void…
在实战中学习,模仿博客园的部分功能.包括用户的注册,登陆:发表新随笔,阅读随笔:发表评论,以及定时任务等.Entity层设计3张表,分别为user表(用户),essay表(随笔)以及comment表(评论).表结构如下: 项目开发采用Intellij IDEA + maven,整个项目结构如下如下图所示: 在项目的pom.xml文件中,导入项目需要的依赖.pom.xml内容如下所示: 1 <project xmlns="http://maven.apache.org/POM/4.0.0&q…
MyBatis这是现在很流行ORM框架,这是非常强大.事实上现却比較简单.优雅. 本文主要讲述MyBatis的架构设计思路,而且讨论MyBatis的几个核心部件.然后结合一个select查询实例.深入代码,来探究MyBatis的实现. 一.MyBatis的框架设计        注:上图非常大程度上參考了iteye 上的chenjc_it所写的博文原理分析之二:框架总体设计 中的MyBatis架构体图,chenjc_it总结的很好,赞一个! 1.接口层---和数据库交互的方式 MyBatis和数…
下面是一个mybatis型材xxxx.xml失踪resultMap错误: 严重: Servlet.service() for servlet [SpringMVC] in context with path [/ZHDM] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.…
MyBatis与Spring整合前后事务管理有所区别 整合前:通过 session = sessionFactory.openSession(true); //或者是false 设置事务是否自动提交: 整合后,在这样写就不起作用了,无论设置为true还是false  都会自动提交事务: 如果想设置事务非自动提交有以下几种方案: ① 创建session之后,手动拿到connection,设置事务非自动提交 session.getConnection().setAutoCommit(false);…
前言 简单实现通过代理接口来实现对数据的查询demo,也是对mybatis的一个熟练.首先是编写接口代理. public interface IBookMapper { List<BookModel> getBookList() throws Exception; } 代理接口编写完毕后,需要在sqlMapConfig中添加映射,同时编码对应的mapper配置.我的接口和接口对应的mapper.xml是放在一个包下面的,目的是为了通过mappers映射器的package映射直接映射类过来. &…
运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:Parameter 'items_id' not found. Available parameters are [array] 错误原因:这是个批量删除案例,从页面传递数组到controller,在我的mapper里面映射错误,我的错误已经在下面标识出来. 解决办法:错误意思已经很清楚了,参数items_id 没有找到,可用参数 array,将items_id…