用mybatis代理方式连接数据库创建表完成增删改查操作及其理论题几道

(1)创建Student表,要求字段:学生编号,学生姓名,学生年龄,学生手机号
并添加10条测试数据
(2)使用mapper代理方式完成如下功能:
①查询所有的学生信息
②根据ID查询学生信息
③分页查询姓名中包含“三”的学生信息,每页查询5条数据
④根据学习编号,学生姓名,学生手机号动态查询学生信息
⑤新增学生信息
⑥根据ID删除学生信息
用mybatis代理方式连接数据库创建表完成增删改查操作及其理论题几道_第1张图片
用mybatis代理方式连接数据库创建表完成增删改查操作及其理论题几道_第2张图片
用mybatis代理方式连接数据库创建表完成增删改查操作及其理论题几道_第3张图片
1.理论
(1)总结使用MyBatis自定义方式完成数据库操作的流程及其注意事项
答: ① jar包
② 定义实体类
③ 定义一个接口
④ 定义映射xml文件
⑤ 定义测试类完成操作

     注意事项:

①定义的映射xml文件必须与接口名相同,而且要在同一个包下
②Namespace 必须是接口的全路径名
③Select等等标签的id必须是接口中 方法的名字

(2)#{}和${}占位的区别
答:① #{}占位符直接接收简单类型值或者属性值,并且可以有效防止sql注入
传入的是基本类型,其内的变量名称可以随意写,如果传入的参数
pojo类型,变量名称必须是pojo中的属性
② ${}占位符表示拼接sql串 ,并且有sql注入风险,慎用
(3)@Param注解的作用
答:① 其实类似于别名,可以使程序员见名知意,可读性更高
② 方便于传多个参数

(4)Mapper接口方法的形参的类型和对应的SQL语句的占位的写法有哪些

      答:①参数全部为基本类型
        Sname =  #{param1} and snum = #{param2}
      ②参数全部为引用类型

Sname = #{param1.sname} and snum = #{param2.snum}
③参数为混合型,有引用类型,有基本类型
Sname = #{param1.sname} and snum = #{param2}

(5)sql标签和include标签的作用
答:①:sql标签是用来封装sql语句,使其重复的sql语句封装起来
②: include标签就是用来调用sql封装的语句,和sql标签配合使用

(6)分页语句的基本语法
答: 比如: select * from student limit 0, 5
通过limit关键字 后第一个数为从第几行开始展示
第二个数为一次展示几行

(7)模糊查询的写法,提供示例的SQL语句。
答:通过concat()函数来连接参数和通配符
示例:select * from where ename like concat("%",#{ename},"%")

(8)主键自增的回显怎么实现
答:① 通过useGeneratedKeys属性来实现

              ② 通过selectKey元素来实现
(9)Sql动态拼接的标签有哪些及其作用? 答 ① if 用来判断 ② where 后边无内容则不显示,有内容则会省略紧跟之后的and和or ③ bind 主要的用途场景为模糊查询,通过bind通配符和查询值, 可避免使用数据库的具体语法来进行拼接 ④set 用在update语句中给字段赋值,借助if可以只对有具体值的字段进行更新,set元素还会自动帮助添加set关键字,自动去掉最后一个if语句的多余的逗号 ⑤Foreach 元素是非常强大的,它鱼汛你指定一个集合或者数组,声明 结合项和索引变量,它们可以用在元素体内,也允许你指定开放和关闭的字符串,在迭代之间放置分隔符

你可能感兴趣的:(mybatis连接数据库查询)