jsp 分页_Mybatis总结及jsp初识

e88729ea2647aa77c5bd15e59b74b8d1.png

Mybatis

部分一

1)解析xml文件

InputStream is=Resources.getResourceAsStream("mybatis.xml");

2)获取SqlSessionFactory对象

SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);

3)获取session对象

Session session=factory.openSession();

4)执行操作

a)使用SqlSession对象执行对数据库的增删改查

List<Dept> list=session.selectList("namespace.selectAll()");

b)使用mapper代理,执行对数据库的增删改查

DeptMapper mapper=session.getMapper(Mapper.class);

5)提交session

session.commit();

6)关闭session

session.close();

部分二

Sql语句的动态拼接

1)if标签(test相当于循环条件 param1是参数,必须写成param1格式)

<if test="param1!=null and param1!=''">

and ename=#{param1}

</if>

2)where标签(相当于的where条件判断)

<where>

<if test="param1!=null and param2!=''">

ename=#{param1}

</if>

</where>

3)set标签(用于数据库更新操作, set关键字会自动的增加set关键字,并且会把最后一个逗号去掉)

<set>

<if test="dname!=null and dname!=''">

dname=#{dname},

</if>

4)trim标签(用于给语句添加和删除前后缀 )

添加前缀:prefix=""

删除前缀:prefixOverrides

添加后缀:suffix=""

删除后缀:suffixOverrides

5)foreach标签(collection :可选list或array;open :以...开始;close:以...结束;separator :分隔符;item:迭代主量)

<foreach collection="list" open="(" close=")" separator="," item="ite"> #{ite}

</foreach>

6)bind标签(对比有无bind方式的区别)

a)无bind方式

<if test="empname!=null and empname!=''">

ename like '%${empname}%'

</if>

121e9ab0be9af65bfcc87ec3acd13dbc.png

b)有bind方式

<if test="empname!=null and empname!=''">

<bind name="aaa" value="'%'+empname+'%'"></bind>

ename like #{aaa}

</if>

49b05964747d97d911fb12ff022ff43c.png

7&8)sql&include标签

<select id="selectAll7" resultType="emp2">

<include refid="testsql"></include>

<where>

<if test="empname!=null and empname!=''">

<bind name="aaa" value="'%'+empname+'%'"></bind>

ename like #{aaa}

</if>

</where>

</select>

<sql id="testsql">

select * from emp

</sql>

9)choose标签(相当于if...else if...)

<choose>

<when test="param1!=null and param1!=''">

ename=#{param1}

</when>

<when test="param2!=null and param2!=''">

job=#{param2}

</when>

<otherwise>

1=1

</otherwise>

</choose>

部分三

多表查询的操作(三种方式)

1)业务代码(实际上就是两个多表查询)

2)N+1方式(整个查询指定的sql语句的条数总共是N+1条)

3)多表查询的sql语句

resultMap使用场景

a)手动映射

b)多表查询

c)N+1方式查询

部分四

1)Mybatis中的缓存

2)Mybatis中的注解的支持

3)Mybatis中的运行原理

4)Mybatis中的分页使用

5)ThreadLoacld的使用

JSP

1)jsp中书写Java代码的三种方式(jsp生成.Java文件,可以在日志中查看存放的位置)

a)声明式:<%!...%>

b)小脚本:<%...%>

c)表达式:<%=...%>

2)声明式和小脚本的区别

a)声明在小脚本中的变量是局部变量,在声明式中定义的变量是成员变量

b)在小脚本中不可以定义方法,在声明中可以定义

c)在小脚本中可以使用jsp内置对象,在声明式中不可以使用

原因:在小脚本中的代码是在类中的jspService方法中书写的,而声明式是在类中书写的

3)jsp中的注释

a)java中的注释

b)html中的注释

c)jsp中的注释<%----%> ,推荐使用

4)jsp动态包含

jsp:include:

5) jsp静态包含

@include

6)动态包含和静态包含的区别

a)静态包含相当于代码赋值黏贴到主文件,动态包含相当于方法调用

b)静态包含中不可以含有和主文件同名的变量。动态包含可以

c)静态包含不产生class文件 但是动态包含产生的

d)静态包含发生的时机式第一个阶段 动态包含是第三个阶段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值