今日所学(五) [当日学习内容检查,如果有误,望大家赐教]

本文介绍了Mybatis配置文件中environment标签的环境设置,包括transactionManager的事务管理方式和dataSource的数据源配置。还讲解了mappers标签的映射文件注册方法,resultMap的自定义映射,以及如何处理sql片段和特殊字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、知识回顾

1、学习了mybatis的增删改查

注意事项:

1 映射文件的id与接口名字对应

2 在映射文件中命名空间是定义接口的位置

3、select标签 parameterType 传入的参数 resultType 接收数据的类型 传入参数和接收数据的类型可以写别名 就是写int Integer 都行

4、insert标签

注意实现是: 如果需要回填主键的话需要使用

<selectKey>

sql语句为 select LAST_INSERT_ID();

</selectKey>

数据库列名 keyColumn

java属性 keyProperty

接收数据类型 resultType

执行时机 order

后面写insert标签

<selectKey>与insert标签连用

5、delete标签 id属性 等

6、 update标签 等

7、分页查询 select ...... limit a ,b; a是起始 (开始为0) b为几条数据

涉及到了传参问题

顺序传参 arg0 arg1开始 param1 param2 (不利于开发--> 数据库的列名不能对应)

@Param 在接口方法传参处 写入映射文件中参数

pojo封装 , 将参数写入在java类中,#{pojo属性}

map封装 将参数以为key

8、properties这个

主要是数据源的配置

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.183.131:3306/mybatis
jdbc.username=root
jdbc.password=root

9、typealias别名

给一个类取别名

typealiases 标签下 typealias标签 type为类的全名 alias为别名

给一个包下取别名 typealiase 标签下 typealias 标签 type为包名

二、今日学习

1、environment标签为mybatis配置数据环境

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

<transactionManager type="JDBC"></transactionManager>

中transactionManager type JDBC的意思是使用jdbc的提交和回滚

然后Managed是不做事务

 <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </dataSource>

这是数据库连接池 datasource , 然后 type后面值有三个可写

一个是POOLED 使用连接池管理连接 mybatis自带连接池

一个是UNPOOLED 不使用连接池1 ,使用jdbc进行连接

一个是JNDI 由javaee的服务器管理连接

2、mappers标签 就是注册映射文件的或者是注册持久层接口的

有四种注册方法

(mappes标签)

一种是绝对路径注册映射文件

<mapper resouces= "">

</mapper>

二种是相对路径注册映射文件

<mapper url >

</mapper>

三种 注册持久层层接口

<mapper class= " ">

</mapper>

四种 注册一个包下的所有持久层接口

<mapper >

<package name >

</mapper>

3、resultMap标签 使用<resultMap>自定义映射关系:

select 标签 中写resultMap,中写 resultMap的id

<!-- id:自定义映射名 type:自定义映射的对象类型  -->
<resultMap id="teacherMapper" type="com.itbaizhan.pojo.Teacher">
​
  <!-- id定义主键列  property:POJO属性名 column:数据库列名  -->
​
  <id property="id" column="tid"></id>
​
  <!-- result定义普通列  property:POJO属性名 column:数据库列名  -->
​
  <result property="teacherName" column="tname"></result>
​
</resultMap>

4、sql或者 include标签

sql定义sql语句的片段 , include引入该片段

就是解决了sql语句里面列名重复 的问题,就不用一直写

<sql id="user">
    id , username , sex , address
</sql>
<insert id="insertUser" parameterType="User">
    insert into user 
    <include refid="user"></include>
    values (#{id} , #{username} , #{sex} , #{address})
</insert>

5、特殊字符处理

在mybatis的映射文件中尽量不适用一些特殊字符 > <

符号实体
<& lt;
>& gt;
&& amp;
& apos;
& quot;

6、if标签

用法<if test = "">

test里面写入属性 pojo的属性

多个条件连接使用 and 或 or

考虑到后面条件都不符合 所以 where 1 = 1 防止不成立

7、where条件 这可以代替where 1 =1

8、set标签 是使用在update语句 ,

借助<if>标签 , set标签会去掉最后一个if标签的,

set作用: 自动添加set关键字,并去掉最后一个if语句中多余的逗号

9、choose类似switch语句 , when标签类似与java的case , otherwise标签相当于 default

10、foreach标签

其中属性有open 开始的sql语句 close 是结束的sql语句 separator 是间隔符 item表示本次遍历获取的元素,遍历List、Set、数组时表示每项元素,遍历map时表示键值对的值。 index 遍历List、数组时表示遍历的索引,遍历map时表示键值对的键。

arrary是数组 list是 list集合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值