Mybatis

1.Map与模糊查询

1.1 复习了解Map集合

众所周知Map是一个集合,键值对形式存储内容,还可以通过泛型来设置键值对的对象类型。例如:Map<String,Object> map = new HashMap<>();
我在学习Mybatis之前可能只是一个集合,但在学习Mybatis的过程中才发现Map是一个万能对象,它可以存储任意类型,用于很多的操作,比如呢就是Map可以使的Mybatis更灵活更好用,当然肯定不止于此,肯定会有很多的操作更好用。

1.2 Map在Mybatis中使用的操作

在正常情况下写一个Mybatis语句的时候会发生一些及其不方便的操作,比如数据库参数有很多,总不可能一个一个都添加上吧,先不说别的,很麻烦。

图1:

mysql如何使用MAP当做返回值 mysql map类型_maven


图2:

mysql如何使用MAP当做返回值 mysql map类型_maven_02


图2是使用Map集合来写的,自我认为简单明了不易出错且有助于Sql语句的使用。

2.模糊查询

1.1 模糊查询

mysql如何使用MAP当做返回值 mysql map类型_java_03


mysql如何使用MAP当做返回值 mysql map类型_数据库_04

3. MybatisXML配置信息

Mybatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息。
mybatis的主配置文件: 主要定义了数据库的配置信息, sql映射文件的位置

在写Mybatis的时候会有一个主文件(xml)文件。里面包含的就是Mybatis的配置信息。
配置Mybatis的时候注意properties标签,注意标签顺序。
约束文件:

<?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></configuration>

mybatis-3-config.dtd :是约束文件的名称。
标签configuration:是文件的跟标签(就是说必须有这个标签才能写配置文件信息)。
首先是setting:setting是控制mybatis全局行为的标签里面有很多属性(需要的可去官网查找相应的使用方法)。

这里只说明常用的几个标签,如有需要去官网查找就好。

<!--settings:控制mybatis全局行为-->
    <settings><!-- 设置-->
        <!--设置mybatis输出日志-->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
	
	<!-- <properties />属性-->
	<!--<typeAliases>类型别名-->
	<!--<environments>环境配置-->

		 <environment id="mydev">
            <!--
               transactionManager :mybatis的事务类型
                   type: JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理)
            -->
            <transactionManager type="JDBC"/>
            <!--
               dataSource:表示数据源,连接数据库的
                  type:表示数据源的类型, POOLED表示使用连接池-->
            <dataSource type="POOLED">
                <!--driver, user, username, password 是固定的,不能自定义。-->
                <!--数据库的驱动类名-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--连接数据库的url字符串-->
                <property name="url" value="jdbc:mysql://localhost:3306/yinhe"/>
                <!--访问数据库的用户名-->
                <property name="username" value="root"/>
                <!--密码-->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
        <!--表示线上的数据库,是项目真实使用的库-->
        <environment id="online">
            <transactionManager type="JDBC"/><!--默认JDBC 还有一个MANAGED 这个配置几乎没做什么。主要是用来让容器管理事务的整个生命周期(比如JEE应用服务器的上下文)-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/yinhe"/>
                <property name="username" value="root"/>
                <property name="password" value="fhwertwr"/>
            </dataSource>
        </environment>
	</environments>
	<!--除此之外还需要配置(sql映射位置)-->
	<!-- sql mapper(sql映射文件)的位置-->
    <mappers>
        <!--一个mapper标签指定一个文件的位置。
           从类路径开始的路径信息。  target/clasess(类路径)
        -->
        <mapper resource="填写的是dao层的接口实现映射实现sql操作"/>
        <!--sql mapper :sql映射
         可以把数据库表中的一行数据  映射为 一个java对象。
	 一行数据可以看做是一个java对象。操作这个对象,就相当于操作表中的数据
-->
        <!--<mapper resource="com/bjpowernode/dao/SchoolDao.xml" />-->
    </mappers>

3.2自定义类型别名(typeAliases)

1.类型别名可以为java类型设置一个缩写名字,她仅用于XML配置,意在降低冗余的全限定类名书写。
1) 定义自定义类型的别名
1)在mybatis主配置文件中定义,使定义别名
2)可以在resultType中使用自定义别名
3)alias的参数为:你要定义的别名(推荐使用实体类名称),type是实体类的全限定名称。

mysql如何使用MAP当做返回值 mysql map类型_mysql如何使用MAP当做返回值_05


正常情况下写的是全限定名称也就是:com.yhzz.pojo.User类,可以使用别名user来代替他

mysql如何使用MAP当做返回值 mysql map类型_mysql如何使用MAP当做返回值_06