Mybatis
1.Map与模糊查询
1.1 复习了解Map集合
众所周知Map是一个集合,键值对形式存储内容,还可以通过泛型来设置键值对的对象类型。例如:Map<String,Object> map = new HashMap<>();
我在学习Mybatis之前可能只是一个集合,但在学习Mybatis的过程中才发现Map是一个万能对象,它可以存储任意类型,用于很多的操作,比如呢就是Map可以使的Mybatis更灵活更好用,当然肯定不止于此,肯定会有很多的操作更好用。
1.2 Map在Mybatis中使用的操作
在正常情况下写一个Mybatis语句的时候会发生一些及其不方便的操作,比如数据库参数有很多,总不可能一个一个都添加上吧,先不说别的,很麻烦。
图1:
图2:
图2是使用Map集合来写的,自我认为简单明了不易出错且有助于Sql语句的使用。
2.模糊查询
1.1 模糊查询
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是实体类的全限定名称。
正常情况下写的是全限定名称也就是:com.yhzz.pojo.User类,可以使用别名user来代替他