Spring Boot专栏六:在Dao.xml文件中写Mybatis语句


本节专栏我们来介绍如何在Dao.xml文件中写Mybatis语句

什么是JDBC

在介绍Mybatis之前,首先简单说一下JDBC. 如果想完整充分学习JDBC,可以参考大佬们的博客,比如:学JDBC,这一篇就够了

我在这里拾人牙慧,冒昧地援引一下:

JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。
JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个
数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。
使用 JDBC 的好处:

  1. 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
  2. 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库

简单来说,JDBC的全称是Java Database connectivity,也就是Java访问、使用数据库的一个接口(连接的口,不是interface那个接口),我们只需要按照sql语言的规则写出来,数据库,比如mysql,就会自动替我们去执行操作。
但是,JDBC是要用Java语言写的,是在java文件中使用的。我们现在在xml文件中,怎么访问数据库,怎么让java使用xml文件去告知数据库进行什么操作?这就要用到Mybatis.

什么是Mybatis

根据Mybatis的百度百科的说法:

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

由此可见,Mybatis就是解决我们上述问题的解。它简单易学,灵活方便,提供xml标签,支持编写动态sql,很方便我们在项目中部署和维护。接下来我们看看如何使用Mybatis来写Dao.xml文件。

xxxDao.xml的内容怎么写

专栏第四节粗略地讲了xml文件的内容怎么写,本节具体地来介绍一下。

xml头部的内容

在专栏第四节中,我们提到了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" >

这个是固定死的,除非xml或者mybatis等的版本变化了,否则我们就是这么写。以后我们写其他的xxxDao.xml文件,只要复制这段话就行了。

mapper对的内容

在专栏第四节中,xml文件的主要内容包括在一个mapper对<mapper> </mapper>中:

<mapper namespace="com.example.demo.dao.UserDao">

    <select id="show_user_all" resultType="com.example.demo.entity.User">
        select *
        from user__
    </select>

    <select id="show_user_by_user_name" parameterType="String" resultType="com.example.demo.entity.User">
        select user_name, user_password, register_time, login_time
        from user__
        where user_name=#{user_name}
    </select>

</mapper>

其中,mapper对有个参数namespace,它代表该xml文件对应哪个Dao.java文件吗。第四节中也提到了,这句话是找到对应Dao的关键。
其他的两个select对,就是和JDBC有关了,我们看下一节

基于Mybatis,写sql语句

下面我们来讲解如何写sql语句,这里我们只讲增删查改四类语句,不涉及add, alert, drop等语句(本小节的内容基于大家有基本的sql语句基础)。

增insert

增 insert,首先我们要在xml的语句对的开头写<insert …>,在对结束的时候写</insert>.
在<insert …>中,有这么几个重要的参数:

  1. id:这个参数不止是insert有,其他的删改查也都有,是用来对应Dao.java文件中的方法名称——所以这部分一定要注意,如果对不上,就会报错——这也是Mybatis高明的地方,提供了一个映射
  2. useGeneratedKeys:是否自动生成主键。这个地方挺坑的,我研究了挺久。
    先说一下这个参数怎么用:当它的值为"true"时,数据库默认将数据表中的第一列、第一个属性当作主键,进行自增;如果不想默认的话,可以通过修改keyProperty和keyColumn这两个
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值