当前位置: 首页 > news >正文

b2c模式网站购物的流程系统优化大师免费版

b2c模式网站购物的流程,系统优化大师免费版,wordpress站内搜索插件,制作公司网站设目录 什么是MyBatis? MyBatis实现的设想 MyBatis基于配置文件的开发步骤 mybatis的配置文件 Mapper代理开发 配置文件完成增删改查的三步 注解开发 一、条件查询 参数接收时,参数的设置: 动态条件查询: 二、添加功能 步骤&#xf…

目录

 什么是MyBatis?

MyBatis实现的设想

MyBatis基于配置文件的开发步骤

mybatis的配置文件

Mapper代理开发

配置文件完成增删改查的三步

注解开发

一、条件查询

参数接收时,参数的设置:

动态条件查询:

二、添加功能

 步骤:

Mybatis事务:

返回添加数据的主键:

三、修改功能

四、删除功能

 参数传递

单个参数:

多个参数

mybatis常见问题


学习资料:

 01-MyBatis简介_哔哩哔哩_bilibili

 什么是MyBatis?

  • MyBatis是一款持久层框架
  • MyBatis是半自动的ORM框架,开发时,需要手动编写SQL语句
  • 相比JDBC,MyBatis提供了输入映射和输出映射,便于进行SQL参数设置,以及结果集封装。并且还提供了关联查询和动态SQL等功能,极大地提高了开发的效率。

MyBatis实现的设想

  • 使用数据库连接池管理数据库连接
  • 将sql语句及占位符号和参数全部配置在xml中
  • 将查询的结果集自动映射成java对象 

MyBatis基于配置文件的开发步骤

  • 编写全局配置文件configuration
  • 编写mapper映射文件,mapper.xml,书写SQL,并定义好SQL的输入、输出参数
  • 加载全局配置文件,生成SqlSessionFactory
  • 创建SqlSession,调用mapper映射文件中的SQL语句来执行CRUD操作

优点:

  • 相较于基于注解的开发,用配置文件更方便后续代码的维护

mybatis的配置文件

  • configuration(配置)
    • properties(属性)
    • settings(设置)
    • typeAllases(类型别名)
    • typeHandlers(类型处理器)
    • objectFactory(对象工厂)
    • plugins(插件)
    • environments(环境配置)
      • environment(环境变量)
        • transactionManager(事务管理器)
        • dataSource(数据源)
      • databaseIdProvider(数据库厂商标识)
      • mappers(映射器)
<configuration><!--全局配置文件的配置顺序如下properties  //引入放置了数据源信息的properties文件settings //用来开启或关闭mybatis的一些特性typeAliases     //配置SQL语句的输入、输出参数细节要求等typeHandlers    //用来处理java类型和jdbc类型之间的转换objectFactory    //用于创建对象实例,用得少plugins    //用来配置mybatis的插件environments    //用来配置数据源environmenttransactionManagerdataSourcemappers-->
</configuration>

Mapper代理开发

  • 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下。接口和配置文件分开放,但包目录结构是一样的
  • 设置SQL映射文件中的namespace属性为Mapper接口全限定名
  • 在Mapper接口中定义方法,方法名就是SQL映射文件中的sql语句中的id,并保持参数类型和返回值类型一致
  • 编码:
    • 通过SqlSession的getMapper方法获取Mapper接口的代理对象
    • 调用对应方法完成sql的执行
    • //获取接口代理对象
      UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
      //执行方法,即执行sql语句
      List<User> users=userMapper.selectAll();

配置文件完成增删改查的三步

  1. 编写接口方法
  2. 编写SQL
  3. 执行方法

注解开发

  • 注解用于完成简单功能;配置文件用于完成复杂功能
  • 常用注解:
    • 查询:@Select
    • 添加:@Insert
    • 修改:@Update
    • 删除: @Delete
  • @Select("select * from tb_user where id=#{id}")
    public User selectById(int id);
    //不用写xml文件了

一、条件查询

  • 参数接收时,参数的设置:

    1. 散装参数:如果方法中有多个参数,需要使用@Param("SQL参数占位符名称")
    2. 对象参数:对象的属性名称要和参数占位符名称一致
    3. map集合:SQL中的参数名要和map集合的键的名称一致
  • 动态条件查询:

    1. if:用于判断参数是否有值
    2. test:逻辑表达式,进行条件判断
    3. 存在的问题:由于条件数目变化,where可能会和and连接,构成语句错误
      1. 解决法一:使用恒等式
      2. 解决法二:使用<where>标签替换where关键字

二、添加功能

  •  步骤:

    • 1、编写接口方法:Mapper接口
      • void add(Brand brand);
    • 2、编写SQL语句:SQL映射文件
      • <insert id="add">insert into tb_brand(brand_name,company_name,ordered,description,status)values(#{brandName},#{companyName},#{ordered},#{description},#{status});
        </insert>
    • 3、执行方法,测试
  • Mybatis事务:

    • 1、openSession():默认开启事务,需要使用sqlSession.commit();手动提交事务
    • 2、openSession(true):自动提交事务
  • 返回添加数据的主键:

    • 1、添加两个属性
    •  2、。。。

三、修改功能

  • 普通修改和动态修改 
  • 步骤:
    • 1、编写接口方法:Mapper接口
      • void update(Brand brand);
    • 2、编写SQL语句:SQL映射文件
      • <update id="update">update tb_brand;<set><if test="brandName !=null and brandName !=''">brand_name=#{brandName},</if><if test="companyName !=null and companyName !=''">companyName=#{companyName},</if><if test="ordered !=null">ordered=#{ordered},</if><if test="description !=null and description !=''">description=#{description},</if><if test="status !=null">status=#{status}</if></set>where id=#{id};
        </update>
    • 3、执行方法,测试

四、删除功能

  • 删除单个和批量删除
  •  步骤:
    • 1、编写接口方法:Mapper接口
      • void deleteByIds(@Param("ids") int[] ids);
        
    • 2、编写SQL语句:SQL映射文件
      • <delete id="deleteByIds">delete from tb_brandwhere id in (<foreach collection="ids" item="id" separator=",">#{id}</foreach>);
        </delete>
        <!--
        mybatis会将数组参数封装为一个Map集合,所以需要foreach来遍历1、默认:array=数组 2、使用@Param注解来改变map集合的默认key的名称
        -->
    • 3、执行方法、测试

 参数传递

  • Mybatis接口方法对 接收到的不同的参数 用ParamNameResolver类 进行 不同的封装处理
    • 单个参数:

      • 1、POJO类型:直接使用,属性名和参数占位符名称一致
      • 2、Map集合:直接使用,键名和参数占位符名称一致
      • 3、Collection:封装成Map集合
        • map.put("arg0",collection集合);
        • map.put("collection",collection集合);
      • 4、List:封装成Map集合
        • map.put("arg0",list集合);
        • map.put("collection",list集合);
        • map.put("list",list集合);
      • 5、Array:封装成Map集合
        • map.put("arg0",数组);
        • map.put("array",数组);
      • 6、其他类型
    • 多个参数

      • 封装成Map集合

        • User select(@Param("username")String username,String password);
          

          封装成Map集合后,建议使用@Param注解,替换Map集合中默认的键名,并使用修改后的名称来获取值,提高可读性

mybatis常见问题

  • SQL映射文件的警告,无法识别表信息
    • 解决:在idea中配置mysql数据库连接
  • 实体类属性名和数据库表列名不一致,不能自动封装数据
    • 解决:使用<resultMap>
  • 使用参数占位符${}时,会存在sql注入问题
    • 解决:使用#{}
  • SQL语句中的特殊字符报错,比如"<"
    • 解决:使用转义字符,比如"&lt"表示"<"
http://www.hkea.cn/news/887119/

相关文章:

  • 公司网站要怎么做少儿编程培训机构排名前十
  • 一个好的网站是什么样的商家联盟营销方案
  • 网站解除域名绑定网站广告收费标准
  • 郑州的建设网站有哪些手续免费发布推广信息的平台有哪些
  • 手机做网站软件优化服务平台
  • 网站图片装修的热切图怎么做营销技巧培训
  • 可以上传图片的网站怎么做百度关键词点击
  • 泉州网站制作广州seo网站开发
  • cuntlove wordpressseo外链发布工具
  • 购买一个网站空间如何可以多个域名使用吗长沙网站建设服务
  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化
  • 问信息奥赛题怎么做 去哪个网站互联网网络推广
  • b2c电子商务网站系统下载专业网站seo推广
  • 引流推广的方法seo诊断工具
  • 平阴县建设工程网站直通车推广怎么做
  • 网站开发外包不给ftp高佣金app软件推广平台
  • 太原适合网站设计地址百度用户服务中心客服电话
  • 济南源码网站建设长沙网站seo推广公司
  • 北京网站制作17页和业务多一样的平台
  • 无锡市住房城乡建设委网站简单网页设计模板html