MyBatis做持久层框架,返回值类型要为Integer MyBatis 做持久层时,之前没注意,有时候为了偷懒使用了int类型做为返回的类型,这样是不可取的,MyBatis做持久层框架,返回值类型要为Integer 今天在使用的时候发现一个java基础类型的重要问题, int类型不能与null比较,即int不能赋值为null(这在C语言中是可以存在的),在数据的操作时常出现空的情况,问题就严肃了 这衍生出一个问题,使用MyBatis作为持久层框架的情况,若返回值是空将发生什么? 项目中用myb…
mybatis是一个持久层的框架,是Apache下的顶级项目. mybatis托管到goolecode下,再后来托管到GitHub下:https://github.com/mybatis/mybatis-3/releases mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句. mybatis可以将向preparedStatement 中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象…
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置. 因此对于单表查询的话用resultType是最合适的.但是,如果在写pojo时,不想用数据库表中定义的字段名称,也…
作者 : 潘潘 未来半年,有幸与导师们一起学习交流,趁这个机会,把所学所感记录下来. 「封面图」 自毕业以后,自己先创业后上班,浮沉了近8年,内心着实焦躁,虽一直是走科班路线,但在技术道路上却始终没静下心来研究.思考.梳理,机会来了,便抓牢. 希望自己记录下来的知识内容,对后来的学习之人,能有些许帮助. 对文章内容有任何建议或意见,或对互联网开发有希望交流学习,或单纯热爱生活,都欢迎随时微信我:panshenlian. 第一个系列的文章主要围绕「架构师(Java)技术条线」展开聊,不定时更新.…
insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.delete语句的返回值可以是Integer.Long和Boolean.在定义Mapper接口时直接指定需要的类型即可,无需在对应的<insert><update><delete>标签中显示声明. 对应的代码在 org.apache.ibatis.binding.MapperMe…
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2013年11月迁移到Github,MyBatis的Github地址:https://github.com/mybatis/mybatis-3. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Dat…
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习是最好的办法.J   Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码.MyBatis 就是针对 SQL 构建的,…
mybatis-day01     1.对原生态jdbc程序中的问题总结         1.1环境             java环境:jdk             eclipse:indigo             mysql:xx mybatis x.x.x 1.2jdbc程序             使用jdbc查询mysql数据中用户表的记录 1.4问题总结             1.数据库连接,使用时就创建,不适用就立即释放,对数据库进行频繁的连接开启和关闭,造成了数据库资源…
MyBatis持久层框架使用总结   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2013年11月迁移到Github,MyBatis的Github地址:https://github.com/mybatis/mybatis-3. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架.iBATIS提供的…
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得.SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得. 1.使用Generator自动生成Dao层,Model层和Mapper层. MyBatis Generator下载地址:http://www.mybatis.org/generator/ MyBatis Ge…
简介 Mybatis 是一个持久层框架,它对 JDBC 进行了高级封装,使我们的代码中不会出现任何的 JDBC 代码,另外,它还通过 xml 或注解的方式将 sql 从 DAO/Repository 层中解耦出来,除了这些基本功能外,它还提供了动态 sql.延迟加载.缓存等功能. 相比 Hibernate,Mybatis 更面向数据库,可以灵活地对 sql 语句进行优化. 针对 Mybatis 的分析,我会拆分成使用.配置.源码.生成器等部分,都放在 Mybatis 这个系列里,内容将持续更新.…
看到一篇很好的文章:http://www.jfox.info/ava-persistence-framework-mybatis-how-to-prevent-sql-injection sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序.所以在我们的应用中需要做一些工作,来防备这样的攻击方式.在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部替换为存储过程…
本文将简单介绍如何使用PowerMock和Mockito来mock1. 构造函数2. 静态函数3. 枚举实现的单例4. 选择参数值做为函数的返回值5. 在调用mock出来的方法中,改变方法参数的值 一点简要说明:Mockito其实已经可以满足大部分的需求,但是它的实现机制是使用cglib来动态创建接口的类的实例.但是这种实现方式不能用于构造函数和静态函数,因为那需要使用类的字节码(比如使用javassist). 所以我们才需要结合使用PowerMock. 1. mock构造函数, 如果有代码没有…
前言: 本项目基于maven构建,使用mybatis-spring-boot作为spring-boot项目的持久层框架 spring-boot中使用mybatis持久层框架与原spring项目使用方式和注解都不相同,需要依赖mybatis-spring-boot包 1.引入mybatis和数据库及其他项目依赖 1.1.引入mybatis依赖 <!-- mybatis-spring-boot --> <dependency> <groupId>org.mybatis.sp…
摘录自:http://www.cnblogs.com/lcngu/p/5437281.html 对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习是最好的办法.J   jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(Str…
mybatis第二天    高级映射 查询缓存 和spring整合          课程复习:         mybatis是什么?         mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.SQL语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射.输出结果映射).         mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用于需求变化较多的项目,比如互联网项目. mybatis框架执行过…
一.MyBatis介绍 MyBatis 是一款优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,可以使用简单的XML或注解将Java的POJO对象映射成数据库中的记录. 创建MyBatis SQL映射XML文件:MyBatis Generator使用示例 MyBatis配置,创建resources/mybatis/mybatis.xml <?xml version="1.0" encoding=&…
Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" resultType="User"> select * from user; </select> Map<String, Object> getUsers(); <select id="getUsers" resultType="…
闭关修炼180天--手写持久层框架(mybatis简易版) 抛砖引玉 首先先看一段传统的JDBC编码的代码实现: //传统的JDBC实现 public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动 Class.forName("com.mys…
本文所有代码已上传至码云:https://gitee.com/rangers-sun/mybatis 修改IUserDao.UserMapper.xml package com.rangers; import com.rangers.entity.User; import java.util.List; /** * @Author Rangers * @Description 用户数据库访问Dao * @Date 2021-03-07 **/ public interface IUserDao…
代码已上传至码云:https://gitee.com/rangers-sun/mybatis 新建Maven工程 架构端MyPersistent.使用端MyPersistentTest,使用端引入架构端Maven坐标 MyPersistentTest使用端配置 新增依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <v…
前言 说起Mybatis,相信大家都不会感到陌生,它是一款优秀的持久层框架,应用于java后端开发中,为客户端程序提供访问数据库的接口. 我们都知道,JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.这也就是Mybatis所具备的功能,那既然已经有了JDBC了,为什么还要用Mybatis呢? 原因很简单,因为单纯使用JDBC进行开发会出现效率低下.耗费资源及影响程序拓展性等问题. JDBC基本用法及问题分析 首先来看一下使用JDBC…
本文验证了通过mybatis访问数据库时的,增删改查的返回值情况. 直接看代码. 1.service层 /** *@Author: Administrator on 2020/3/12 15:15 *@param: *@return: *@Description:查询同步情况 */ @Override public PageInfo getSyncstatusPages(Syncstatus vo, int pageNo, int pageSize) { PageHelper.startPage…
一.MyBatis的简介  MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.    MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.MyBatis的历史 原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software…
公司之前用的是spring boot + jpa,但由于jpa无法完美的解决某些动态查询问题,就使用的jdbcTemplate 动态封装SQL,由于代码相对复杂,可读性差,现准备再引入mybatis.下面说一下整合过程中遇到的问题,以及所踩的坑. 为避免出现问题我们先准备一个干净的工程进行测试 选择web模块以及以下模块 完整项目结构 完整项目地址 https://github.com/tmlh98/springboot-jpa-mybatis.git SQL文件 /* SQLyog Ultim…
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应的jar包 [mybat…
一.现状描述 目前java 持久层ORM框架应用最广泛的就是JPA和Mybatis.JPA只是一个ORM框架的规范, 对该规范的实现比较完整就是Spring Data JPA(底层基于Hibernate实现),是基于Spring的数据持久层框架,也就是说它只能用在Spring环境内.Mybatis也是一个优秀的数据持久层框架,能比较好的支持ORM实体关系映射.动态SQL等. 笔者在学习这两个框架的过程中,看过不少的帖子,每当有帖子比较这两个框架的优缺点,就引来一场论战.从笔者的角度,为什么国内的…
目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sqlSession类定义 1.9 会话对象sqlSession方法定义 1.10 查询对象…
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sq…
MyBatis 简介 MyBatis 是一个基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需关注 SQL 语句本身,而不用再花费精力去处理诸如注册驱动.创建 Connection.配置 Statement 等繁杂过程. Mybatis 通过 xml 或注解的方式将要执行的各种 Statement.PreparedStatement 等配置起来,并通过 Java 对象和 Statement 中 SQL 的动态参数进行映射生成最终执行的 SQL 语句,最后由 MyBatis 框架执…