MyBatis框架

1.使用maven项目构建项目,添加依赖

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

MyBatis 的配置文件:

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">
<!--xx.dtd是xml文件约束,约束标签-->对XML文件中的配置顺序进行约束

配置文档的顶层结构如下:

<configuration>配置标签:

属性(properties)

创建properties文件,使用properties标签导入,例如

<properties resource="jdbc.properties"></properties>

设置(settings)

会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。

类型别名(typeAliases)

类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。

比如

<typeAliases>
<package name="com.qf.pojo"/>
</typeAliases>

那么每一个在pojo包中的实体类,在没有注解的情况下,会使用这个类的名字作为别名。

插件(plugins)

MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。

比如:

<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
interceptor指定当前拦截器

com.github.pagehelper.PageInterceptor是插件中的属性。

环境配置(environments):

环境配置中可以设置多个environments标签,配置多个运行环境,例如:

<environments default="development">
  <environment id="development">
    <transactionManager type="JDBC">
      <property name="..." value="..."/>
    </transactionManager>
    <dataSource type="POOLED">
      <property name="driver" value="${driver}"/>
      <property name="url" value="${url}"/>
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
    </dataSource>
  </environment>
</environments>

映射器(mappers):

<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

这个配置会告诉框架去那里找映射文件。

XML映射器:

<mapper namespace="com.qf.mapper.UserDao">

namespace标签需要指定接口的全限定名称

  • insert – 映射插入语句。
  • update – 映射更新语句。
  • delete – 映射删除语句。
  • select – 映射查询语句。

支持JSTL,比如需要取出属性值参数中的属性值的时候可以${属性值.属性值的属性值}取出。

id:可以被用来引用这条语句的方法,必须要与接口文件中的方法名一致

parameterType:要传入这条语句的参数的类全限定名或者别名

resultType:期望从这条语句中得到的类全限定名或者别名

书写sql语句是,必须要使用占位符号#{实体类属性名称}

在执行sql时,可以配置一些函数

<selectKey keyColumn="id" keyProperty="id" resultType="int" order="AFTER">
<!--通过这个函数获取最后一次自增长主键的id值-->
SELECT LAST_INSERT_ID() ;
</selectKey>

selectKey
属性
keyColumn:表的主键字段名称,(仅适用于 insert 和 update)设置生成键值在表中的列名,
keyProperty:实体类的属性名称(仅适用于 insert 和 update)指定能够唯一识别对象的属性
resultType:返回值自增长主键的值类型:当前实体类的完全限定名称或者别名
order:AFTER:在执行插入语句之后执行selectkey的语句获取最后一次id的值

查询如果涉及到多个条件,可以有四种方法赋值

一:使用参数顺序进行操作:

User findUserByMultConditon(String name,String addr) ;

<select id="findUserByMultConditon" resultType="com.qf.pojo.User">
select * from user where username = #{param1} and address = #{param2}
</select>-->

二:使用Param注释进行操作

User findUserByMultConditon(@Param("username") String name, @Param("address") String addr) ;

<select id="findUserByMultConditon" resultType="user">
select * from user where username = #{username} and address = #{address}

取值的时候使用Param设置的名称取值
</select>

三:使用map集合接受所有参数,#{}里面的内容需要和map集合的key一致

User findUserByMultConditon(Map<String,String> map) ;

!-- <select id="findUserByMultConditon" resultType="com.qf.pojo.User">
select * from user where username = #{name} and address = #{addr}
</select>-->

四:自定义一个实体,将参数放在实体中

User findUserByMultConditon(VoUser voUser) ;

<!--<select id="findUserByMultConditon" resultType="com.qf.pojo.User" parameterType="com.qf.pojo.VoUser">
select * from user where username = #{name} and address = #{addr}
</select>-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值