结构图,顺序不能改变
(最底下有文档连接,超级详细,有点不想搬运)
大致说一下常用的吧
1.Properties(属性)
可以在标签内部配置连接数据库的信息。常用通过属性引用外部配置文件信息
2.typeAliases(类型别名)
类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
有两种用法,1是单一起别名,2是为整个包起别名
另外,mybatis为常见的 Java 类型建立很多相应的类型别名。它们都是不区分大小写的,详细看文档
3.环境配置(environments)
MyBatis可以配置多个环境。这可以帮助你SQL映射对应多种数据库等。
比如说,你想为开发、测试、发布产品配置不同的环境。等等。
不过,值得咱们注意的是:虽然你可以配置多重环境,但是你只可以选择一对一的SqlsessionFactory实例。
例如: 用environment 的id属性来标识,然后environments 的default指定
环境里面要配置
事务管理器(transactionManager):在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”)
数据源(dataSource):有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”):
具体看文档(底下连接)
4.Mappers (映射器)
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。
但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。
Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。
你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。
具体看文档
以上这些配置会告诉了 MyBatis 去哪里找映射文件,剩下的细节就应该是每个 SQL 映射文件了,也就是接下来我们要讨论的。
个人的配置
<?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属性: 常用的 用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。 url属性: 是要求按照Url的写法来写地址 URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。 它的写法: http://localhost:8080/mybatisserver/demo1Servlet 协议 主机 端口 URI URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。 --> <properties resource="db.properties"> <!--<properties url="file:///D:javacodemybatismybatis_para_res_configsrcmain esources/db.properties">--> <!--
<property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/cong"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property>
--> </properties> <!--使用typeAliases配置别名,它只能配置pojo中类的别名 --> <typeAliases> <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就再区分大小写 <typeAlias type="com.cong.pojo.Account" alias="account"></typeAlias>--> <!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写--> <package name="com.cong.pojo"></package> </typeAliases> <!--配置环境 如果有多个环境,比如mysql,Oracle等--> <environments default="mysql"> <!-- 配置mysql的环境--> <environment id="mysql"> <!-- 配置事务管理 --> <transactionManager type="JDBC"></transactionManager> <!--配置数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </dataSource> </environment> </environments> <!-- 配置映射文件的位置 --> <mappers> <!--<mapper resource="com/cong/mapper/AccountMapper.xml"></mapper>--> <!--<mapper url="file:///D:javacodemybatismybatis_para_res_configsrcmain esourcescomcongmapperAccountMapper.xml"></mapper>--> <!--以下两个需要AccountMapper.class与AccountMapper.xml有相同的目录结构--> <!--<mapper class="com.cong.mapper.AccountMapper"></mapper>--> <!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 --> <package name="com.cong.mapper"></package> </mappers> </configuration>
db.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/cong jdbc.username=root jdbc.password=123456
XML 映射文件
所在文档页:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps
关于AccountMapper.xml中的命名空间namespace,文档这么说
在之前版本的 MyBatis 中,命名空间(Namespaces)的作用并不大,是可选的。 但现在,随着命名空间越发重要,你必须指定命名空间。
命名空间的作用有两个,一个是利用更长的完全限定名来将不同的语句隔离开来,同时也实现了你上面见到的接口绑定。就算你觉得暂时用不到接口绑定,你也应该遵循这里的规定,以防哪天你改变了主意。 长远来看,只要将命名空间置于合适的 Java 包命名空间之中,你的代码会变得更加整洁,也有利于你更方便地使用 MyBatis。
命名解析:为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则。
- 完全限定名(比如 “com.mypackage.MyMapper.selectAllThings)将被直接用于查找及使用。
- 短名称(比如 “selectAllThings”)如果全局唯一也可以作为一个单独的引用。 如果不唯一,有两个或两个以上的相同名称(比如 “com.foo.selectAllThings” 和 “com.bar.selectAllThings”),那么使用时就会产生“短名称不唯一”的错误,这种情况下就必须使用完全限定名。
MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。
主要需要注意的有
1.传入参数的类型
2.输出结果的类型
3.插入数据返回插入数据的id
一些内容上篇博客有提到:https://www.cnblogs.com/ccoonngg/p/11300871.html
参考:https://blog.csdn.net/weixin_40254133/article/details/80615597
文档:http://www.mybatis.org/mybatis-3/zh/configuration.html#properties