mybatis用哪个标签取别名
<param>
mybatis有没有缓存
有缓存
不清空mybatis会有什么影响?
有脏读
namespace
唯一标志
不同的SQL session对象 做相同的查询
获取主键 id :
用<selectKey>标签
<selectKey keyProperty="id" order="AFTER" resultType="int">
select last_insert_id()
</selectKey>
懒加载前提
嵌套查询
解决列名 和 属性名不一致的是:
标签<resultMap>
@results()
如果结果集中明确只有一条数据可查方法用哪个方法:
selectone()
创建mybatis的步骤:
1,创建核心配置文件
2,new SqlSessionFactoryBuilder()对象.
3点build();方法获取SqlsessionFactory
4.获取Sqlsession
5.操作数据库
6.提交事物
7.关闭
在核心配置文件中配置哪些内容:
开发环境
全局变量
配置实物
配置映射器
循环:
<foreach collection="" open="" item="" close="" separator="" index=""></foreach>
collection :便利对象的 类型;array/List
open: 循环体前面的字符
close::循环体后面的字符
item: 每次遍历的对象参数名
separator:循环体中间分割的字符
prameterType:不用写
判断:
<if text="">
test:条件表达式
<where trim="
">
<set>、
去除多余的(,)处理set关键字
替换set标签:
<trim prefix="SET" suffixOverrides=",">
prefix:
suffixOverrides:
一对一:
两点建议:
1)在做表关联查询的时候如果有字段重名,一定要写别名;
2)在做表关联查询的时候尽量把id索引带上,可以提高查询效率;
<association property="us" javaType="pojo.user">
property:属性的名称
javaType:要映射的 类的全限定类名
一对多:
<collection property="orders"
ofType="pojo.orders"
column="id"
select="userANDordersID"
autoMapping="true"
fetchType="lazy">
<resultMap type="vo.MarketPrdersUserVo" id="SQL2map" autoMapping="true">
type:要映射的类的全限定类名
id:<select resultMap="SQL2map">
autoMapping:自动映射
查询:
<select id="SQL2" resultMap="SQL2map">
id:方法名
resultMap:输出的类型(可以是对象、数组、集合、简单类型)
获取主键自增:
<selectKey keyProperty="id" order="AFTER" resultType="int">
keyProperty:查询结果存放在对象的哪个属性中
order:BEFORE/AFTER
resultType:返回值的返回类型;
数组转List集合
Arrays.asList(数组变量);
SQL的优化:
1》合理使用索引
2》使用SQL片段
3》避免使用*
4》SQL执行
仅个人笔记不足或有错之处请留言
以便于我修改!
谢谢您的来访!