Mybatis学习一

Android代码-Mybatis-PageHelper MyBatis Pagination - PageHelper 中文版文档 If you are using MyBatis, it is recommended to try this pagination plugin. This must be the Most Convenient pagination plugin. PageHelper support any complex single-table, multi-table queries. Some special cases please see the Important note. Want to use PageHelper? Please see How to use PageHelper. New JavaDoc https://apidoc.gitee.com/free/Mybatis_PageHelper Method API: https://apidoc.gitee.com/free/Mybatis_PageHelper/com/github/pagehelper/page/PageMet 立即下载

1、MyBatis介绍

MyBatis 本是apache的一个开源项目iBatis,它是一个基于java的持久层框架。
MyBatis支持普通SQL查询,存储过程和高级映射的持久层框架,使用比较简单,使用XML或者注解配置和原始映射,将接口和java的POJO(Plain Old Java Objects)映射成数据库中的记录。

2、MyBatis的环境搭建

java环境
eclipse
mysql
mybatis运行环境(jar包)

这里写图片描述

3、框架流程

这里写图片描述

1、SqlMapConfig.xml

SqlMapConfig.xml是mybatis的全局配置文件,配置数据库,数据源,事务mybatis运行环境。

2、SqlSessionFactory

根据配置文件SqlMapConfig.xml创建工厂

3、SqlSesssion

通过工厂来创建SqlSession会话,在这里操作数据库,完成SQL的增,删,改,查

4、Executor

执行SqlSession语句,操作数据库执行。

5、mapped statement

对操作数据库存储封装(sql语句,输入参数,输出结果等)

4、入门示例

1、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-config.dtd">
<configuration>
<properties resource="db.properties">
        <!--properties中还可以配置一些属性名和属性值 -->
        <!-- <property name="jdbc.driver" value=""/> -->
    </properties>
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理,事务控制由mybatis-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池,由mybatis管理-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

    <!-- 加载 映射文件 -->
    <mappers>
        <mapper resource="sqlmap/User.xml"/>

    </mappers>

</configuration>

数据库文件配置

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/student
jdbc.username=root
jdbc.password=123456

2、POJO类

简单的JavaBean类

package com.example.po;
public class User {

    private String name;
    private int age;
    private String cls;
    private int id;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getCls() {
        return cls;
    }

    public void setCls(String cls) {
        this.cls = cls;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + ", cls=" + cls + ", id="
                + id + "]";
    }

}

3、映射文件User.xml文件

在映射文件中写SQL语句
参数
id:标识映射文件的sql标识
parameterType:参数类型
resultType:返回值类型

<?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">

<!-- namespace命名空间-->
<mapper namespace="test">
    <select id="findUserById" parameterType="int" resultType="com.example.po.User">
        SELECT * FROM USER WHERE id=#{value}
    </select>
</mapper>

4、在SqlMapConfig.xml中加载映射文件

<mappers>
        <mapper resource="sqlmap/User.xml"/>

    </mappers>

5、单元测试

package mybatis.jdbc;

import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.example.po.User;

public class JdbcTest {

    @Test
    public void findUserByIdTest() throws IOException {

        // mybatis配置文件
        String resource = "SqlMapConfig.xml";
        // 得到配置文件流
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 创建会话工厂,传入mybatis的配置文件信息
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

        // 通过工厂得到SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 通过SqlSession操作数据库
        // 第一个参数:映射文件中statement的id,等于=namespace+"."+statement的id
        // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数
        // sqlSession.selectOne结果 是与映射文件中所匹配的resultType类型的对象
        // selectOne查询出一条记录
        User user = sqlSession.selectOne("test.findUserById", 1);

        System.out.println(user);

        // 释放资源
        sqlSession.close();

    }
}

5、细节

1、参数

parameterType:输入的参数类型
resultType指定输出结果的类型

2、#{}和¥{}

#{}是一个点位符,接收的参数可以是简单类型,pojo,hashmap,
${}表示一个拼接的符号,会引起sql注入,因此不建议使用。

3、selectOne和selectList

selectOne查询一条记录进行映射。如果使用selectOne实现,也可以使用selectList实现(list中只有一条记录)

selectList表示查询列表进映射。如果有多条的话,使用selectOne则会报错。

6、传统Dao开发遇到的问题

1、dao接口实现类方法中存在大量的重复代码
2、存在很多 硬编码,不等于维护和修改
3、调用sqlsession方法时传入的变量,使用泛型,如果出错,编译时候也不会报,不利于开发。
解决办法mapper代理方法

7、mapper代理方法

1、定义接口

package com.example.mapper;

import com.example.po.User;

public interface UserMapper {
    public User findUserById(int id) throws Exception;

}

2、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 namespace="com.example.mapper.UserMapper">

    <select id="findUserById" parameterType="int" resultType="com.example.po.User">
        SELECT
        * FROM USER WHERE id=#{value}
    </select>


</mapper>

3、SqlMapConfig.xml文件中配置

<!-- 加载 映射文件 -->
    <mappers>
        <mapper resource="sqlmap/User.xml" />
        <package name="com.example.mapper"/>
    </mappers>

4、测试用例

public class UserMapperTest {
    private SqlSessionFactory sqlSessionFactory;

    // 此方法是在执行testFindUserById之前执行
    @Before
    public void setUp() throws Exception {
        // 创建sqlSessionFactory

        // mybatis配置文件
        String resource = "SqlMapConfig.xml";
        // 得到配置文件流
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 创建会话工厂,传入mybatis的配置文件信息
        sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);
    }

    //用户信息的综合 查询


    @Test
    public void testFindUserById() throws Exception {

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //创建UserMapper对象,mybatis自动生成mapper代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //调用userMapper的方法

        User user = userMapper.findUserById(1);

        System.out.println(user);


    }

}

8、Sql片段

为什么使用sql片段
1、在进行Sql查询的时候,可能都要进行一些统一的操作。比如判断用户是否输入内容,如果没有内容,则不进行后续sql查询
2、一些比较常用的sql语句抽取出来,组成sql片段。
示例如下:
这里写图片描述

android应用整合Ibatis框架 对mybatis源码稍微进行了修改,使其适用于android开发 立即下载

相关推荐

Android代码-oh-mybatis

oh-mybatis 预览 如何使用 这是一个标准的 maven 工程,你下载代码解压后倒入到 IDE 里。 启动 Application.java 文件,打开浏览器 http://127.0.0.1:9000 输入相关配置即可。

mybatis Android,mybatis abatis OrmLite android

1、在android 应用程序开发中使用mybatis的不利方面:参考网址:http://stackoverflow.com/questions/4539426/android-application-and-mybatisA、需要对mybatis针对Dalvik编译B、对于手持设备来讲有点太“重量级”C、存在其他可用与Android app 的ORM框架The first thing to do...

weixin_42442958的博客 591

mybatis学习

mybatis学习

android——仿mybatis的半自动数据库映射的实现

由于一直是做web端,最近接触android,操作数据库的时候怀念mybatis,因此很简单的做了个功能有限的仿造。在此来探讨一下。                mybatis对于sql还是需要写的,只是自动映射字段到结果对象,所以是半自动,以此来体现其灵活性。而对于sql的管控完全分离到了xml之中。其中最令人印象深刻的地方之一应该是通过一个mapper接口去和xml进行管理。而这个mapp

guduyishuai的博客 2066

spring+springmvc+mybatis+mysql+实现的APP信息管理系统.rar

App信息管理平台,分为开发者平台和后台管理系统。开发者与超级管理员通过该系统对App进行不同的操作与管理。 开发者平台:允许开发者入驻管理自己的App,对App进行基本的信息操作。如,上传App及版本信息,App发布和维护、App搜索、个人信息修改等。 后台管理系统:负责后台数据的维护和管理,对App的发布进行审核。

抖音用户主页视频数据爬虫详解(点赞,收藏,分享等)

的包中有个max_cursor参数,请求载荷中也有一个这样的参数,每次请求的数据中max_cursor是下一个请求的载荷,,,同时has_more为1时候代表还能请求,0为不能请求,我们做如下判断。最后发现cookie很容易过期,批量爬取有点困难,,,,我们采用drissoinpage进行自动化获取。首先进行抓包分析,,,随便找个主页,f12,关键词搜索,发现这个包是以post开头。请你第一次运行先按0,进行登录(或者触发反爬的时候),登录完成之后,按1进行爬取,完整代码请在知识星球。

m0_74823507的博客 3429

Mybatis

Mybatis介绍  MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。Mybatis全局配置信息 文件结构 conf

小学长的博客 614

qcom bypass node介绍

介绍qcom bypass node,以及如何让其生效

haodada1226的博客 2042

毕业设计-基于Android的校园外卖app(框架Springboot+mybatis)

1.商家管理:商家可以进行店铺商品的增删改查操作,同时可以发布新的商品信息。商品信息包括名称、地址、联系方式、描述、头像等,商家可以根据需求添加或修改商品信息。此外,商家还可以修改密码和个人信息,提高账号的安全性。2.用户管理:用户可以通过系统注册商家或用户账号,并设置密码。用户可以查看未处理订单、已完成订单等,并根据订单状态和时间筛选和查看订单信息。用户还可以查看商家评论,修改个人信息和密码,以及增删改查收货地址等。

u014388322的专栏 2019

AWR射频仿真基本操作(一)

这里只讲述一个基本的操作: 软件是AWR 14版本

钢丝 2万+

保姆级教程:用微信小程序+OneNet MQTT API,5分钟搞定温湿度数据实时展示

本文提供了一份详细的教程,教你如何利用微信小程序和OneNet MQTT API在5分钟内实现温湿度数据的实时展示。从OneNet平台配置到小程序数据绑定,手把手指导零基础开发者快速搭建监控系统,涵盖API调用、数据解析和界面设计等关键步骤。

weixin_30298497的博客 368

MyBatis学习一

MyBatis 是一个优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 几乎消除了 JDBC 代码和参数的手动设置以及 结果集的检索。MyBatis 使用简单的 XML 或注解进行配置,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射到数据库中的记录。与其他 ORM 框架不同,MyBatis 并没有将 Java 对象与数据库表关联起来,而是将方法与 SQL 语句关联。

wangqiang996的博客 1100

Windows 必看!OpenClaw 一键安装教程|告别报错,一次成功不踩坑

OpenClaw 完整安装与配置的全流程教程

m0_70389289的博客 1085

MyBatis学习(一)——认识Mybatis

MyBatis学习 MyBatisMyBatis学习一、MyBatis是什么?二、获得MyBatis1.1、什么是持久化1.2、持久层1.3、为啥需要MyBatis 一、MyBatis是什么? . MyBatis 是一款优秀的持久层框架 ·它支持定制化SQL、存储过程以及高级映射。 . MyBatis避兔了几乎所有的JDBC代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Javaobjects,普通老式Java

char_m的博客 1182

论deepseek软件底层原理

如处理医学文本时,将任务分配给擅长医学知识处理的专家,避免通用模块处理的低效性,极大提升计算效率与任务处理的针对性。教师模型复杂且强大,学生模型结构简单。协作处理:多模块协作时,建立数据流通与交互机制,各模块按顺序或并行处理数据,不断传递与更新中间结果,共同完成复杂任务。(一)输入处理与任务判断 输入预处理:接收输入数据,如用户文本提问,首先进行清洗,去除噪声数据、特殊字符等。任务分类:通过MoE架构“路由器”,依据输入数据特征,判断任务所属领域与类型,如文本分类、情感分析等,为后续处理模块选择提供依据。

欢乐打代码! 2738

一次点击跑通:用 Postman 自动获取并携带 CSRF token,测试 SAP OData 写操作

SAP OData 写操作自动化测试方案 针对 SAP Gateway OData 服务写操作中常见的 CSRF token 验证问题,本文提出了一套基于 Postman 的自动化解决方案: 问题分析:解释了 CSRF token 的验证机制及其必要性,说明手工测试效率低下的原因 解决方案: 使用 Postman 环境变量存储 token 通过脚本自动获取并传递 token 利用 Collection Runner 实现一键执行 实施步骤: 创建环境变量存储 token 第一个请求获取 token 并存入变

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 303

Mybatis学习总结一

Mybatis总结 主配置文件中常用的标签 properties标签 properties标签:可以在标签内部配置连接数据库的信息,也可以通过属性引用外部配置文件信息; resource属性:用于指定配置文件的位置,配置文件必须放在类路径下,url属性:按照Url的写法来写地址,使用file协议; <properties resource="jdbc.properties"></properties> 或 <properties>

wsb_2526的博客 839

Mybatis学习总结一——认识Mybatis

一、什么是Mybatis?     Mybatis是一个优秀的持久层框架,它对 jdbc 的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建 statement、手动设置参数、结果集检索等 jdbc 繁杂的过程代码。 二、Mybatis架构(重点) 三、Mybatis下载 地址:https://github...

追梦人生的博客 396

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Mybatis 源码学习(一)

Mybatis源码分析(一) 准备: 下载mybatis源码,导入idea开发工具,编写mybatis的测试需要的类、全局配置文件等。 认识mybatis的整体架构,主要的类的作用。 通过断点调试来完成Mybatis的源码阅读。 认识Mybatis mybatis简介 ​ mybatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。mybatis几乎避免了所有的jdbc代码和手动设置参数以及获取结果集,它可以使用简单的XML或注解的来配置和映射SQL信息,将接口和java 的 PO

qq_44621930的博客 320

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

mybatis学习一

Mybatis实际上就是一个JDBC的一个简化器,通过mybatis的配置,从而消除了繁杂的jdbc代码,并且实现了数据库查询的半自动化。其主要的工作流程为: 1)读取 MyBatis 配置文件:mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。 2)加载映射文件。映射文件即 SQL 映射文件,该文件中配置了...

台风天赋的博客 312

mybatis学习总结一

mybatis与关联查询学习心得 1目录 1.1 mybatis的CRUD 1.2 mapper的使用 1.3动静态代理 2 mybatis的CRUD 2.1技术的整体运用 有以下几步:1.设置数据库,开启服务。2.创建java工程,导入三大类型jar包,mybatis的核心包与依赖包、数据库驱动包3.添加junit工具,通过buildpath-&gt;conf…4.src文件夹下导入文件SqlM...

weixin_44195996的博客 257
上一篇: WebView的使用
下一篇: Spring学习一(Spring介绍)
android_xiaogang
博客等级 码龄12年 89粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值