【基础学习-MyBatis】
【基础学习-MyBatis】
我一直在流浪
这个作者很懒,什么都没留下…
展开
-
MyBatis的第一个程序
文章目录1.如何获得MyBatis:2.什么是持久化:3.什么是持久层?4.为什么需要Mybatis?5.第一个Mybatis程序5.1搭建环境5.1.1 搭建数据库5.1.2 新建项目5.2 创建一个模块1.如何获得MyBatis:maven仓库地址:https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.2Github上源码...原创 2019-10-16 21:40:05 · 288 阅读 · 0 评论 -
MyBatis中实体类属性和数据库中字段不一致的情况
文章目录1.对于增删改操作2.对于查询操作3.查询解决方式之起别名4.查询解决方式之使用resultMap属性1.对于增删改操作注意数据库中的字段名:注意实体类中的属性名:占位符一定要和属性名保持一致,否则就会报错:2.对于查询操作注意数据库中的字段名:注意实体类中的属性名:执行查询所有用户的操作:发现只有姓名username封装了进去,因为在windows操作系统下,...原创 2019-10-21 17:18:35 · 3203 阅读 · 1 评论 -
MyBatis配置之别名优化
文章目录类型别名(typeAliases)方式1方式2方式3类型别名(typeAliases)类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。方式1<!--给实体类起别名--><typeAliases> <typeAlias type="com.kuang.pojo.User" a...原创 2019-10-17 14:53:31 · 180 阅读 · 0 评论 -
MyBatis中二级缓存
设置二级缓存1.显式的开启全局缓存: <settings> <!--显式的开启全局缓存--> <setting name="cacheEnable" value="true"/> </settings>2.在要使用二级缓存的mapper中开启缓存:<cache/>也可以自定义参数: &l...原创 2019-10-18 19:09:53 · 284 阅读 · 0 评论 -
MyBatis 多对一的处理
文章目录1 按照查询结果嵌套查询(子查询)2 按照结果嵌套处理(联表查询)1 按照查询结果嵌套查询(子查询)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis...原创 2019-10-18 13:55:19 · 139 阅读 · 0 评论 -
MyBatis中ResultMap结果集映射
用于解决属性名和字段名不一致的情况:package com.kuang.pojo;public class User { private int id; private String username; private String password; public User(int id, String username, String password) { ...原创 2019-10-17 17:06:48 · 1089 阅读 · 0 评论 -
MyBatis中properties,typeAliases标签
文章目录1.properties标签2.typeAliases标签3.映射配置文件中的package标签1.properties标签2.typeAliases标签方式1:方式2:3.映射配置文件中的package标签原创 2019-10-21 18:56:28 · 330 阅读 · 0 评论 -
MyBatis中核心对象生命周期和作用域
SqlSessionFactoryBuilder:一旦创建了 SqlSessionFactory,就不再需要它了。SqlSessionFactory:就是数据库连接池一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。SqlSessionFactory 的最佳作用域是应用作用域有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。SqlSes...原创 2019-10-17 15:56:38 · 754 阅读 · 1 评论 -
【MyBatis学习及总结01】MyBatis入门
文章目录1.环境搭建2.导包3.写配置4.测试1.环境搭建创建一个maven父工程和子工程创建数据库,表,以及封装数据库的javabean和操作数据库的dao接口@Data@NoArgsConstructor@AllArgsConstructorpublic class Employee { private Integer id; private String em...原创 2019-12-04 10:21:07 · 220 阅读 · 1 评论 -
MyBatis中一级缓存
文章目录1.查看缓存2.缓存失效的情况2.1 查询不同的信息2.2 增删改操作,可能会改变原来的数据,所以必定会存在刷新缓存2.3 手动清理缓存2.4 查询不同的Mapper.xml1.查看缓存1.开启日志2.测试在一个Session中查询两次相同的记录3.查看日志输出2.缓存失效的情况2.1 查询不同的信息 @Test public void test(){ ...原创 2019-10-18 18:41:02 · 233 阅读 · 0 评论 -
【MyBatis学习及总结07】分步查询:select属性指定分步查询
文章目录环境分步查询:JavaBean中有JavaBean分步查询的问题:按需加载分步查询:JavaBean中有集合环境在上个博客中我们使用了多表联合查询,但是想一想如何表的数目较多时,那么写多表查询的SQL语句就会变得困难,同样,如果从数据库性能的角度来看,还是联合查询。由这个表可以看出,一把钥匙对应一把锁,一把锁对应多把钥匙。分步查询:JavaBean中有JavaBean查出一把钥...原创 2019-12-06 10:35:56 · 615 阅读 · 0 评论 -
MyBatis实现增删改查
文章目录参数说明搭建环境1.select:根据id查询数据库中的数据2.insert:增加用户3.update:修改用户4.delete:删除用户参数说明namespace:namespace中的包名要和接口的包名一致id:就是对应namespace类中的方法名resultType:SQL语句执行的返回值parameterType:参数类型搭建环境1.编写获取sqlSession...原创 2019-10-17 10:17:19 · 187 阅读 · 0 评论 -
MyBatis的增删改查操作
0.准备数据库CREATE TABLE USER(id INT(11) NOT NULL AUTO_INCREMENT,username VARCHAR(32),birthday DATETIME,sex CHAR(1),address VARCHAR(256),PRIMARY KEY(id));INSERT INTO USER(id,username,birthday,sex...原创 2019-10-21 15:59:20 · 195 阅读 · 0 评论 -
MyBatis复杂环境搭建
文章目录1.数据库准备2.测试环境搭建2.1 导入lombok2.2 新建实体类2.3建立mapper接口2.4 建立Mapper.xml文件2.5 在核心配置文件中注册我们的Mapper接口或者文件2.6 测试查询是否成功1.数据库准备DROP TABLE IF EXISTS student;DROP TABLE IF EXISTS teacher;CREATE TABLE teach...原创 2019-10-18 11:19:47 · 195 阅读 · 0 评论 -
【MyBatis学习及总结02】MyBatis实现CRUD操作
文章目录1.创建环境2.写配置文件3.编写测试类1.创建环境1.导包:在resource目录下导入一个日志文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j...原创 2019-12-04 11:45:25 · 418 阅读 · 0 评论 -
MyBatis配置之属性优化
文章目录配置解析1.核心配置文件2.环境配置(environments)3.属性(properties)配置解析1.核心配置文件mybatis-config.xmlMyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息2.环境配置(environments)MyBatis 可以配置成适应多种环境不过要记住:尽管可以配置多个环境,但每个 SqlSessi...原创 2019-10-17 14:21:02 · 268 阅读 · 0 评论 -
MyBatis中万能的Map和模糊查询
文章目录1.假设实体类或者数据库中的表的字段过多,应当考虑使用Map2.使用Map,可以不用把表的属性全写出来,只要写需要的属性3.模糊查询Map传递参数,直接在sql中取出key即可对象传递参数,直接在sql中取对象的属性即可一个基本类型传递参数,直接在sql中取到1.假设实体类或者数据库中的表的字段过多,应当考虑使用Map1.编写接口://万能的Mapint addUser2...原创 2019-10-17 11:28:19 · 1219 阅读 · 0 评论 -
MyBatis中一对多的查询
文章目录1.数据库准备:2.编写实体类3.编写实体类接口4.编写映射配置文件:5.编写测试类:1.数据库准备:user表:CREATE TABLE USER(id INT(11) NOT NULL AUTO_INCREMENT,username VARCHAR(32),birthday DATETIME,sex CHAR(1),address VARCHAR(256),PRIMA...原创 2019-10-21 21:38:12 · 152 阅读 · 0 评论 -
MyBatis入门案例
文章目录0.数据库准备1.导入jar包依赖2.编写实体类3.编写接口4.编写核心配置文件5.编写接口对应的配置文件6.编写测试类0.数据库准备CREATE TABLE USER(id INT(11) NOT NULL AUTO_INCREMENT,username VARCHAR(32),birthday DATETIME,sex CHAR(1),address VARCHAR(25...原创 2019-10-20 19:57:43 · 200 阅读 · 0 评论 -
MyBatis配置之映射器
文章目录方式1【推荐使用】方式2方式3方式1【推荐使用】<!--每一个Mapper.xml都需要在MyBatis核心配置文件中注册--><mappers> <mapper resource="com/kuang/dao/UserMapper.xml"/></mappers>方式2使用class文件绑定注册:<mappers...原创 2019-10-17 15:15:01 · 316 阅读 · 0 评论 -
【MyBatis学习及总结05】映射配置文件(查询结果封装为集合)
文章目录查询多条记录封装为List集合查询单条记录封装为Map查询多条记录封装为mapresultMap自定义封装规则查询多条记录封装为List集合下面为查询所有员工:public interface EmployeeDao { public List<Employee> getAllEmployee();}注意:这里resultType:写的是集合里面元素的类型...原创 2019-12-05 13:19:57 · 291 阅读 · 0 评论 -
【MyBatis学习及总结03】核心(全局)配置文件
文章目录配置文件:mybatis-config.xml1. properties(属性)标签2. 设置(settings)3. 类型别名(typeAliases)标签4.mappers标签4.1 class:引用接口的全类名4.2 resource:在类路径下找sql映射文件配置文件:mybatis-config.xml1. properties(属性)标签<dataSource t...原创 2019-12-04 15:32:41 · 259 阅读 · 0 评论 -
MyBatis中实现分页查询
文章目录1.使用limit分页2.MyBatis中limit实现分页3.MyBatis中RowBounds实现分页(了解)1.使用limit分页select * from user limit startIndex,pageSize;2.MyBatis中limit实现分页1.编写接口: List<User> getUserByLimit(Map<String,Obje...原创 2019-10-17 21:21:09 · 515 阅读 · 0 评论 -
MyBatis中日志工厂与log4j
文章目录1.日志工厂2.log4j1.日志工厂如果一个数据库出现了异常,需要排错,日志就是最好的助手在mybatis-config.xml中配置:2.log4j1.先导入Log4j的包2.log4j.properties:### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender....原创 2019-10-17 20:31:54 · 212 阅读 · 0 评论 -
MyBatis中一对一的查询
文章目录1.数据库准备:2.编写实体类3.编写实体类接口4.编写映射配置文件:5.编写测试类:1.数据库准备:user表:CREATE TABLE USER(id INT(11) NOT NULL AUTO_INCREMENT,username VARCHAR(32),birthday DATETIME,sex CHAR(1),address VARCHAR(256),PRIMA...原创 2019-10-21 21:12:06 · 257 阅读 · 0 评论 -
MyBatis一对多的处理
文章目录环境搭建按照结果嵌套查询按照子查询嵌套查询环境搭建1.实体类:package com.kuang.pojo;import lombok.Data;import java.util.List;@Datapublic class Teacher { private int id; private String name; //一个老师拥有多个学生 ...原创 2019-10-18 14:54:03 · 160 阅读 · 0 评论 -
MyBatis中多对多的查询
文章目录数据库的准备查询角色获取角色下用户信息编写实体类编写RoleDao编写RoleDao的映射配置文件编写测试类查询用户获取用户的角色信息编写实体类编写UserDao编写UserDao的映射配置文件编写测试类数据库的准备DROP TABLE IF EXISTS role;CREATE TABLE role(id INT NOT NULL,role_name VARCHAR(32) ...原创 2019-10-22 10:54:13 · 768 阅读 · 0 评论 -
MyBatis使用注解开发
1.注解完成select1.注解在接口上实现:package com.kuang.dao;import com.kuang.pojo.User;import org.apache.ibatis.annotations.Select;import java.util.List;public interface UserMapper { @Select("select * from u...原创 2019-10-18 10:02:07 · 188 阅读 · 0 评论 -
【MyBatis学习及总结06】联合查询:ResultMap封装数据库中查询出的数据
文章目录1. resultMap解决属性名和字段名不同2.ResultMap封装数据(JavaBean中有JavaBean)2.1 级联属性的方式封装查出的数据2.2 使用association标签3.ResultMap封装数据(JavaBean中有集合)1. resultMap解决属性名和字段名不同首先看下应用场景:下面是数据库中的一个表:下面是根据上面的数据库数据封装的JavaBea...原创 2019-12-05 16:09:34 · 686 阅读 · 0 评论 -
【MyBatis学习及总结04】映射配置文件(查询自增主键,参数传递)
文章目录映射配置文件1. insert标签映射配置文件下面是映射配置文件中可用的标签:1. insert标签获取插入数据后的自增主键<mapper namespace="com.hh.dao.EmployeeDao"> <!-- 先设置useGeneratedKeys="true" keyProperty:让mybatis自动的将自...原创 2019-12-05 10:30:43 · 216 阅读 · 0 评论