MyBatis
Ysdo
热爱记录和分享的打工人er
展开
-
使用基于注解的Mybatis时切忌不要方法重载
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in file [D:\bs\target\company\WEB-INF\classes\com\bzu\Dao\UserDao.class]: Invocation of init method failed; nested exception is java.lang.Il原创 2020-05-09 22:30:20 · 629 阅读 · 0 评论 -
Mybatis 缓存
为什么使用缓存?对于一些我们经常查询的并且不经常改变的数据,如果每次查询都要与数据库进行交互,那么大大降低了效率,因为我们使用缓存,将一些对结果影响不大且经常查询的数据存放在内存中,从而减少与数据库的交互来提高效率,这就是缓存的优势。mybatis中的一级缓存 一级缓存指的是 mybatis中SQLSession对象的缓存当我们在执行查询操作时,查询的结果同时会存入Sq...原创 2019-06-02 17:43:09 · 6518 阅读 · 1 评论 -
Mybatis 注解之Result 解决实体类与数据库表的对应关系
有时候我们在javabean中定义的实体类名字与数据库不一样,此时mybatis就无法将数据库与实体类相对应,除了xml配置外我们还可以使用@results注解来加以注明。在Results注解下可设置一个id方便其他sql语句使用 ,其他语句使用 需使用ResultMap注解 从而提高代码的复用性id属性用于指定主键 将id=true即可column属性对应数据库名,proper...原创 2019-06-03 09:30:55 · 3510 阅读 · 0 评论 -
mybatis注解之多表查询
一对一查询,先来理解什么是一对一查询(在mybatis中把多对一也看做成一对一),像商品和用户的关系,一个用户对应多个商品,一个商品仅供一个用户购买,他们之间用主键和外键来关联,一对一中,通过商品的外键来查找用户的信息。此时我们会发现一个新注解@One 这是代表 一对一查询 里面的属性有select 用于指定 查找用户信息的方法(此时必须通过主键查找)fetchType 用于指定延时加载...原创 2019-06-03 16:06:59 · 4334 阅读 · 0 评论 -
mybatis配置文件顺序
<configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>< data...原创 2019-06-09 21:40:28 · 725 阅读 · 0 评论 -
SpringMVC 需要导入的jar包坐标
使用 <properties>标签可控制所以spring的版本 在调用时使用${spring.version}即可调用,以方便日后进行版本修改<properties><spring.version>5.0.2.RELEASE</spring.version></properties><!-- 版本锁定 -->...原创 2019-06-03 19:52:30 · 3914 阅读 · 0 评论 -
Mybatis中使用pageHelper 进行分页
pageHelper 是mybatis中一种良好的分页插件,它可以支持任何复杂的单表、多表分页,使用也是非常的简单。第一步 导入maven坐标(或jar包) <dependency> <groupId>com.github.pagehelper</groupId> <artifactId...原创 2019-06-10 14:32:01 · 14975 阅读 · 3 评论 -
mybatis多表查询 多对多
多对多查询就是两个实体类 通过一个中间表 来实现多对多查询 他和一对多有点类似。<!--多对多查询--> <resultMap id="reMap" type="com.qst.domian.Employee"> <!-- 主键--> <id property="id" column="id"&g...原创 2019-08-21 21:34:18 · 218 阅读 · 0 评论 -
多表查询没有实体类对其封装该怎么办?
我们在使用mybatis进行多表查询又不想用resultMap来封装数据,那我们该如何把数据进行封装呢?此时我们可以使用Map集合来对查询出的数据进行封装;一条数据直接使用返回Map类型,而多条数据我们可以用List<Map>来对数据进行封装,Map的key就是数据的数据名 value就是数据的数据值具体实现方式我们来看一下代码:<?xml version=...原创 2019-09-04 11:22:07 · 3566 阅读 · 5 评论 -
idea+mybatis 简单逆向工程
导入mysql依赖、配置逆向工程插件 <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> ...原创 2019-09-11 11:24:05 · 149 阅读 · 0 评论 -
mybatis 延时加载
立即加载:在一对一的关系中一般采用立即加载,只要一调用就立即发起加载。举例:一个用户有100个账户,查询账户时有必要把用户信息也显示出来。延时加载:在一对多,或多对多中中一般采用延时加载,延时加载就是指,真正使用数据时才发起查询,不用的时候不查询,按需加载(懒加载)。举例:一个用户有100个账户,查询用户时没必要把所有账户信息都显示,所以采用延时加载Mybatis...原创 2019-05-29 21:13:31 · 641 阅读 · 0 评论 -
mybatis 多表查询 (一对多操作)
一对多操作,像是一个user类实例关联好几个account实例如图,一个jack对应两个account在User类中 加上一个account的集合package com.qst.domain;import java.util.List;public class User { private Integer id; private String use...原创 2019-05-29 15:42:32 · 1456 阅读 · 0 评论 -
mybatis无法打印DEBUG日志信息
第一步加载log4j.xml文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd"><log4j:configuration> <!--输出到控制台...原创 2019-04-23 15:14:00 · 3278 阅读 · 0 评论 -
mybatis 主配置文件以及mapper.xml的约束
config.xml约束文件配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">mapper.x...原创 2019-05-27 16:24:49 · 1759 阅读 · 2 评论 -
idea中的MyBatis 环境搭建
我们在使用传统的jdbc连接数据库时不得不加载驱动,创建连接等复杂过程,然而我们真正想去使用的就是那么一条sql语句,Mybatis则很好的封装了jdbc,去掉了那些繁琐的过程,使我们只需关注sql语句即可。ORM思想 对象关系映射 就是把数据库表和实体类及实体类的属性对应起来Mybatis 环境搭建:1.导入mybatis的jar包,或者导入坐标2.创建实体类和dao的接...原创 2019-05-27 16:56:09 · 677 阅读 · 0 评论 -
MyBatis注解入门
一、在Dao接口上使用注解 @Select,并且制定SQL语句package com.qst.dao;import com.qst.domain.User;import org.apache.ibatis.annotations.Select;import java.util.List;public interface IUserDao { @Select("select...原创 2019-05-27 19:09:40 · 332 阅读 · 0 评论 -
MyBatis具体实现步骤
一、读取配置文件二、创建SqlSessionFactory工厂三、使用工厂创建SqlSession对象四、使用SqlSession创建Dao接口的代理对象五、使用代理对象执行方法六、关闭资源package com.qst;import com.qst.dao.IUserDao;import com.qst.domain.User;import org.apach...原创 2019-05-27 19:09:52 · 1424 阅读 · 0 评论 -
MyBatis执行简单的CRUD
一,进行环境搭建,这里就不详细说明了二,编写实体类三,新建dao层接口,加上crud方法四,在Mapper的配置文件中 写入sql五,执行sql接下来看详细步骤:编写User实体类package com.qst.domain;public class User { private Integer id; private String ...原创 2019-05-28 11:06:37 · 163 阅读 · 0 评论 -
MyBatis 单个查询(根据id查询)和模糊查询(根据name查询)
先定义一组接口package com.qst.dao;import com.qst.domain.User;import java.util.List;public interface IUserDao {// 根据id查询 User findUserById(Integer id);// 模糊查询 List<User>...原创 2019-05-28 11:36:21 · 6656 阅读 · 0 评论 -
MyBatis中 实体类中的属性名与数据库不匹配改怎么办
在mybatis配置映射时,实体类中的属性名应该和数据库中属性的名字相一致,如果出现不一致时我们该怎么办? 增删改的时候好办,直接在#{}里面写入实体类的属性名,那么查询呢,这时我们就需要一个resultMap标签resultMap标签中的id标签对应主键 result对于其它键,property属性代表实体类属性的名字,colum代表数据库中属性的名字在进行查询时,直接使用resultM...原创 2019-05-28 15:53:33 · 859 阅读 · 0 评论 -
mybatis 多表查询 (一对一操作)
在数据库中,表与表存在着很多种关系,像一对多,一对一,多对多,我们来把他拿到实际应用中来举个例子: 一对多:好比一个用户可以下多个订单 (多对一:多个订单可以供一个的下 mybatis 中还没有多对一的概念) 一对一:一个订单只能有一个订单号 多对多:一个学生可以有多个老师,一个老师也可以教多个学生。在这,我们就具体看一下mybatis中一对一关系的...原创 2019-05-29 14:50:52 · 990 阅读 · 0 评论 -
mybatis Criteria的使用
查询名字中带有字母 r ,性别为男性(1)或者email中带有数字1的人员信息@Test public void test1() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.o...原创 2019-04-23 15:41:49 · 4068 阅读 · 0 评论