MyBatis介绍与搭建

MyBatis简介
  • Mybatis 开源免费框架.原名叫iBatis,2010在google code,2013年迁移到github
  • 作用:数据访问层框架.
    • 底层是对JDBC的封装.
  • mybatis 优点之一:
    • 使用mybatis时不需要编写实现类,只需要写需要执行的sql命令

MyBatis的mapper层搭建

  • 主要是三个东西
    • 配置的xml文件(名字随便起,包含环境,事务管理器选择,连接池选择,账号密码,连接数据库类型和映射对应连接的配置)
    • 配置的映射表(写sql语句的地方)
    • pojo包里面的pojo实体类

MyBatis环境搭建
  • 导入jar包(仅有MyBatis核心包是必须的,其他仅仅是辅助MyBatis包顺便导入

  • 在src下新建全局配置文件(编写JDBC四个变量)

    • 没有名称和地址要求

    • 在全局配置文件中引入DTD或schema

      • 如果导入dtd后没有提示
        Window–>preference–>XML–>XMI catalog->add 按钮
    • 配置全局文件内容

  • 新建以mapper 结尾的包,在包下新建:实体类名+Mapper.xml

    • 文件作用:编写需要执行的SQL命令
    • 把xml文件理解成实现类.
    • xml文件内容

注意:
只要xml中涉及到了自己写的类,一定是全路径,因为反射机制反射类就是要全路径。
在mapper的select标签中,尽量设置pojo类和数据库列名一致,否则会出现无法取出情况,如果实在无法避免则可以通过改为,select id,name name123,price,production from flower(其中name123为pojo类中起的对应属性名

  • 测试结果(只有在单独使用mybatis 时使用,最后ssm整合时下面代码不需要编写.)
    实例化工厂对象(Factory)时使用的是构建者设计模式(.build())
    构建sqlsessionfactory也可以不使用xml

环境搭建详解
  • 全局配置文件中内容
    • type属性可取值(事务管理方式)
      • JDBC,事务管理使用JDBC原生事务管理方式
      • MANAGED把事务管理转交给其他容器.原生JDBC事务setAutoMapping(false);(即不再自动提交,转为转交容器中控制)
    • type 属性
      • POOLED使用数据库连接池
      • UNPOOLED不实用数据库连接池,和直接使用JDBC一样
      • JNDI:java命名目录接口技术。(比较底层,如果要写其他语言对接才会用)

数据库连接池
  • 在内存中开辟一块空间,存放多个数据库连接对象

  • JDBC Tomcat Pool,直接由tomcat 产生数据库连接池.

  • 图示

    • active状态:当前连接对象被应用程序使用中
    • ldle空闲状态:等待应用程序使用
  • 使用数据库连接池的目的

    • 在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率.
      • 小型项目不适用数据库连接池.
  • 实现JDBCtomcat Pool的步骤.

    • 在web项目的META-INF中存放context.xml,在context.xml编写数据库连接池相关属性(type表示在java通过name属性取到连接池对象时这个在java中类型是什么:数据源

    • 把项目发布到tomcat中,数据库连接池产生了

  • 可以在java中使用jndi获取数据库连接池中对象

    • Context:上下文接口,context.xml文件对象类型
    • 代码:
    • 当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成ldle

查询与映射
处理映射
  • XML

  • 还有另一种方法来处理映射。 它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置,使用注解来映射简单语句会使代码显得更加简洁,然而对于稍微复杂一点的语句,Java 注解就力不从心了,并且会显得更加混乱。 因此,如果你需要完成很复杂的事情,那么最好使用 XML 来映射语句。

三种查询方式
  • 1.selectList()返回值为List<resultType属性控制>

    • 适用于查询结果都需要遍历的需求
  • 2.selectOne()返回值Object,

    • 适用于返回结果只是变量或一行数据时
  • 3.selectMap()返回值Map

    • 适用于需要在查询结果中通过某列的值取到这行数据的需求.
    • Map<key,resultType 控制>
  • 注意:
    在数据访问层和控制器处理异常,service层异常只抛出不处理
    命名解析:为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则。

    • 完全限定名(比如 “com.mypackage.MyMapper.selectAllThings)将被直接用于查找及使用。

    • 短名称(比如 “selectAllThings”)如果全局唯一也可以作为一个单独的引用。 如果不唯一,有两个或两个以上的相同名称(比如 “com.foo.selectAllThings” 和 “com.bar.selectAllThings”),那么使用时就会产生“短名称不唯一”的错误,这种情况下就必须使用完全限定名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值