parametertype

mybatis 详解(六)------通过mapper接口加载映射文件

狂风中的少年 提交于 2020-04-07 07:49:45
通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:      改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.ys.po.User; public interface UserMapper { //根据 id 查询 user

mybatis 详解(六)------通过mapper接口加载映射文件

风格不统一 提交于 2020-04-07 05:51:33
通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:      改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.ys.po.User; public interface UserMapper { //根据 id 查询 user

mybatis 详解(六)------通过mapper接口加载映射文件

吃可爱长大的小学妹 提交于 2020-04-06 18:42:16
目录 1、定义 userMapper 接口 2、在全局配置文件 mybatis-configuration.xml 文件中加载 UserMapper 接口(单个加载映射文件) 3、编写UserMapper.xml 文件 4、测试 5、批量加载映射文件 6、注意    通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的。那么什么是通过 mapper 接口加载映射文件呢?   我们首先看以前的做法,在全局配置文件 mybatis-configuration.xml 通过 <mappers> 标签来加载映射文件,那么如果我们项目足够大,有很多映射文件呢,难道我们每一个映射文件都这样加载吗,这样肯定是不行的,那么我们就需要使用 mapper 接口来加载映射文件   以前的做法:   改进做法:使用 mapper 接口来加载映射文件 1、定义 userMapper 接口 package com.ys.mapper; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations

myBatis实例

不羁的心 提交于 2020-04-03 23:02:35
一.搭建环境, 建立数据库 1 CREATE TABLE user( 2 id int(11) not NULL AUTO_INCREMENT, 3 userName varchar(50) DEFAULT NULL, 4 userAge int(11) DEFAULT NULL, 5 userAddress varchar(200) DEFAULT NULL, 6 PRIMARY KEY(id) 7 )ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 建立一个myBatis的java项目(不需要web项目) 然后倒入jar包 建总配置文件: 在src下建configration包.在建Configurations.xml文件 代码如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC " -//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <typeAliases> 6 <typeAlias type="com.user.User" alias="User"/> 7 <

使用MyBatis编写Dao的两种语法

≯℡__Kan透↙ 提交于 2020-03-29 07:55:12
原文链接: http://www.yiidian.com/mybatis/mybatis-dao.html 在MyBatis中,我们有两种Dao的写法,一种叫传统Dao写法,一种叫Mapper代理接口。下面看看如何实现。 1 传统Dao写法 1.1 编写CustomerDao接口 package com.yiidian.dao; import com.yiidian.domain.Customer; import java.util.List; /** * Dao接口 *一点教程网 - www.yiidian.com */ public interface CustomerDao { /** * 查询所有用户 */ public List<Customer> findAll(); /** * 添加 */ public void save(Customer customer); /** * 修改 */ public void update(Customer customer); /** * 查询一个 */ public Customer findById(Integer id); /** * 条件查询 */ public List<Customer> findByName(String name); /** * 删除 */ public void delete(Integer id)

Mybatis 动态SQL

一个人想着一个人 提交于 2020-03-28 08:42:14
Mybatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性的同时,也大大提高了开发人员的效率。 以 User 表为例来说明: 1、 if 语句 根据 username 和 sex 来查询数据。如果username为空,那么将只根据sex来查询;反之只根据username来查询 首先不使用 动态SQL 来书写 <select id="selectUserByUsernameAndSex" resultType="user" parameterType="com.ys.po.User"> <!-- 这里和普通的sql 查询语句差不多,对于只有一个参数,后面的 #{id}表示占位符,里面不一定要写id, 写啥都可以,但是不要空着,如果有多个参数则必须写pojo类里面的属性 --> select * from user where username=#{username} and sex=#{sex} </select> 上面的查询语句,我们可以发现,如果 #{username} 为空,那么查询结果也是空,如何解决这个问题呢?使用 if 来判断 <select id="selectUserByUsernameAndSex"

MyBatis简单的CRUD与配置解析

白昼怎懂夜的黑 提交于 2020-03-24 04:04:05
MyBatis 1、CURD 1、namespace mapper.xml下面的namespace中的包名必须与对应mapper接口的包名一致! 2、select 选择,查询语句: id :对应namespace中的方法名 parameterType:方法的参数类型 resultType:sql执行后的返回值 添加接口中对应方法 //根据ID查询用户 User getUserById(int id); 编写对应mapper.xml里面的sql语句 <select id="getUserById" parameterType="int" resultType="com.jiutong.pojo.User"> select * from myBatis.user where id = #{id} </select> 测试 @Test public void getUserById(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User userById = mapper.getUserById(1); System.out.println(userById); sqlSession.close();

Mybatis学习文档

倾然丶 夕夏残阳落幕 提交于 2020-03-23 09:49:26
Mybatis学习文档 Mybatis是持久层框架类似于Hibernate的orm持久层框架 1.JDBC访问数据库存在的问题 频繁创建和打开、关闭数据链接,太消耗资源 Sql语句存在硬编码,不利于维护 Sql参数设置硬编码,不利于维护 结果集获取与遍历复杂,存在硬编码,不利于维护,期望查询后返回一个java对象 2.Mybatis介绍 前身是apache下的开源项目,2010有aspache software foundation 迁移到了google code ,并且改名为Mybatis,2013年迁移到github。 3.Mybatis入门 工程搭建 导入jar包 配置SqlMapConfig.xml 配置log4j.properties 配置sql查询的映射文件 加载映射文件 完成需求 步骤 编写sql语句 配置user映射文件 编写测试程序 需求 根据用户ID查询用户信息 根据用户名模糊查询用户信息 插入用户(主键返回,UUID使用) 修改删除用户 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3

Mybatis 框架学习

邮差的信 提交于 2020-03-23 05:45:35
Mybatis 一. 入门 1. JDBC 回顾 (1). 准备数据库 新建 mybatis_learn 数据库 执行 sql 脚本 1 -- ---------------------------- 2 -- Table structure for `Blog` 3 -- ---------------------------- 4 DROP TABLE IF EXISTS `Blog`; 5 CREATE TABLE `Blog` ( 6 `id` int(11) NOT NULL AUTO_INCREMENT, 7 `author` varchar(128) NOT NULL COMMENT '作者', 8 `title` varchar(128) NOT NULL COMMENT '博客标题', 9 PRIMARY KEY (`id`) 10 ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; 11 ​ 12 -- ---------------------------- 13 -- Records of Blog 14 -- ---------------------------- 15 INSERT INTO `Blog` VALUES ('1', '张三', 'Java基础概述'); 16 INSERT

Mybatis(二) Mybatis通用的写法

落花浮王杯 提交于 2020-03-22 16:55:26
2.1 用来循环容器的标签forEach,查看例子   foreach元素的属性主要有item,index,collection,open,separator,close。 item:集合中元素迭代时的别名, index:集合中元素迭代时的索引 open:常用语where语句中,表示以什么开始,比如以'('开始 separator:表示在每次进行迭代时的分隔符, close 常用语where语句中,表示以什么结束,   在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况: 如果传入的是单参数且参数类型是一个List的时候,collection属性值为list . 如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array . 如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.   针对最后一条,我们来看一下官方说法: 注意 你可以将一个 List 实例或者数组作为参数对象传给