七.MyBatis 简介

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

八. 环境搭建

  1. 导入 jar

    其它包(单纯的介绍)
  2. 在 src 下新建全局配置文件(编写 JDBC 四个变量)
    2.1 没有名称和地址要求
    2.2 在全局配置文件中引入 DTD 或 schema
    2.2.1 如果导入 dtd 后没有提示
    Window–> preference --> XML --> XMl catalog --> add 按钮

    2.3 全局配置文件内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- default 引用 environment 的 id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 -->
<environment id="default">
<!-- 使用原生 JDBC 事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/> <!-- 不能有空格,不然报Cannot find class:  com.mysql.jdbc.Driver  -->
<property name="url" value="jdbc:mysql://localhost:3306/ssm"/> <!--不能有空格,不然报No suitable driver found for  jdbc:mysql://localhost:3306/ssm  -->
<property name="username" value="root"/> <!-- 不能有空格,不然报Access denied for user ' root'@'localhost' (using password: YES) -->
<property name="password" value="smallming"/> <!-- 不能有空格,不然报Access denied for user ' root'@'localhost' (using password: YES) -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/>
</mappers>
</configuration>环境搭建详解:
1.全局配置文件中内容1.1 <transactionManager/> type 属性可取值1.1.1 JDBC,事务管理使用 JDBC 原生事务管理方式1.1.2 MANAGED 把事务管理转交给其他容器.原生 JDBC setAutoMapping(false);
1.2 <dataSouce/>type 属性1.2.1 POOLED 使用数据库连接池1.2.2 UNPOOLED 不实用数据库连接池,和直接使用 JDBC 一样1.2.3 JNDI :java
  1. 新建以 mapper 结尾的包,在包下新建:实体类名+Mapper.xml
    3.1 文件作用:编写需要执行的 SQL 命令
    3.2 把 xml 文件理解成实现类.
    3.3 xml 文件内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namesapce:理解成实现类的全路径(包名+类名) -->
<mapper namespace="a.b" >
<!-- id:方法名
parameterType:定义参数类型
resultType:返回值类型. 如果方法返回值是 list,在 resultType 中写 List 的泛型,
因为 mybatis
对 jdbc 封装,一行一行读取数据
-->
<select id="selAll"
resultType="com.bjsxt.pojo.Flower">
select * from flower
</select>
</mapper>
  1. 测试结果(只有在单独使用 mybatis 时使用,最后 ssm 整合时下面代
    码不需要编写.)
InputStream is =Resources.getResourceAsStream("myabtis.xml");
//使用工厂设计模式
SqlSessionFactory factory = new
SqlSessionFactoryBuilder().build(is);
//生产 SqlSession
SqlSession session=factory.openSession();
List<Flower> list =
session.selectList("a.b.selAll");
for (Flower flower : list) {System.out.println(flower.toString());
}
session.close();

十.数据库连接池

1.在内存中开辟一块空间,存放多个数据库连接对象.
2.JDBC Tomcat Pool,直接由 tomcat 产生数据库连接池.
3.图示
3.1 active 状态:当前连接对象被应用程序使用中
3.2 Idle 空闲状态:等待应用程序使用

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

5.实现 JDBC tomcat Pool 的步骤.
5.1 在 web 项目的 META-INF 中存放 context.xml,在 context.xml 编写数据库连接池相关属性

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/ssm"
username="root"
password="smallming"
maxActive="50"
maxIdle="20"
name="test"
auth="Container"
maxWait="10000"
type="javax.sql.DataSource"
/>
</Context>

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

6.可以在 java 中使用 jndi 获取数据库连接池中对象
6.1 Context:上下文接口.context.xml 文件对象类型
6.2 代码:

Context cxt = new InitialContext();
DataSource ds = (DataSource)
cxt.lookup("java:comp/env/test");
Connection conn = ds.getConnection();

6.3 当关闭连接对象时,把连接对象归还给数据库连接池,把状态
改变成 Idle

十一. 三种查询方式

1.selectList() 返回值为 List<resultType 属性控制>
1.1 适用于查询结果都需要遍历的需求

List<Flower> list = session.selectList("a.b.selAll");
for (Flower flower : list) {System.out.println(flower.toString());
}

2.selectOne() 返回值 Object, 2.1 适用于返回结果只是变量或一行数据时

int count = session.selectOne("a.b.selById");
Flower flower = session.selectOne("a.b.selById",4); //mapper通过parameterType设置参数类型、#{随意写}接收参数,大括号中的参数随意写;参数可为对象,为对象时#{对象的属性名}

3.selectMap() 返回值 Map
3.1 适用于需要在查询结果中通过某列的值取到这行数据的需求.
3.2 Map<key,resultType 控制>

Map<Object, Object> map = session.selectMap("a.b.c","column_name");
System.out.println(map);

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namesapce:理解成实现类的全路径(包名+类名) -->
<mapper namespace="a.b" ><!-- id:方法名 parameterType:定义参数类型resultType:返回值类型.如果方法返回值是list,在resultType中写List的泛型,因为mybatis对jdbc封装,一行一行读取数据--><select id="selAll" resultType="com.bjsxt.pojo.Flower">select id,name name123,price,production from flower</select><!--  查询数量<select id="selById" resultType="int">  select count(*) from flower  </select>--><select id="selById" parameterType="int"  resultType="com.xmm.demo.pojo.Flower">select * from test where id = #{suiyi} </select><select id="c" resultType="com.bjsxt.pojo.Flower">select id,name name123,price,production from flower</select>
</mapper>

MyBatis 简介、 环境搭建、数据库连接池、查询方式相关推荐

  1. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一) 1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee ...

  2. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  3. mybatis的环境搭建及如何和搭配spring使用

    本次博客主要介绍mybatis的环境搭建及如何和搭配spring使用,关于动态sql的部分可能会放在后面找一个专题来写.建议要有一定的ibatis的基础 1maven组织结构所需要的jar包 01 & ...

  4. spring boot+mybatis框架环境搭建

    配置spring boot+mybatis框架环境搭建 一, spring boot 环境搭建 以下步骤为 1,新建maven工程 2.在pom文件中添加: spring-boot-starter-p ...

  5. SSM框架的搭建学习(1)---MyBatis的环境搭建

    SSM(Spring+SpringMVC+MyBatis)框架为当今最为流行的WEB开发框架之一,基本上涉及数据库的一些增删改查操作都可以借用此框架,本尊此前接的一个小公司关于楼宇空调监控指标的项目就 ...

  6. SpringBoot+Mybatis+Swagger2环境搭建

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:calebman https://www.jianshu.c ...

  7. 基于SpringMVC、Maven以及Mybatis的环境搭建 【转】

    搭建环境 1.IDE用的是Eclipse的J2EE版本,要保证装上了Maven,可以使用Eclipse的Install New Software来安装 然后点击Next,安装好后重启一次. 注意:使用 ...

  8. SpringBoot+Mybatis+Swagger2环境搭建+logback-spring日志打印及入库

    本文简介 本文将基于Spring官方提供的快速启动项目模板集成Mybatis.Swagger2框架,并讲解mybatis generator一键生成代码插件.logback.一键生成文档以及多环境的配 ...

  9. ORM框架之Mybatis(二)数据库连接池、事务及动态SQL

    一.MybatisMybatis连接池与事务深入  1.1 Mybatis的连接池技术  在Mybatis中也有连接池技术,但是它采用的是自己的连接池技术.在Mybatis的SqlMapConfig. ...

  10. java 数据库连接池配置方式

    一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,内容如下:  <Context>       <Resour ...

最新文章

  1. 计算机画图工具怎么缩小图片,Win10如何放大或缩小图片?利用win10画图工具放大、缩小图片教程...
  2. 前端思想实现:面向UI编程_____前端框架设计开发
  3. 在java 里kv 是什么_consul kv使用介绍
  4. 云炬Android开发笔记 5-1,2网络框架接口创建
  5. 什么是JavaConfig
  6. 计算机进管理提示找不到入口,win10系统开机提示xxxdll模块已加载但找不到入口点的教程...
  7. 宽度自适应实现方法(转)
  8. postman json 中写注释_Swagger界面丑、功能弱怎么破?用Postman增强下就给力了!
  9. 百度面试题:malloc/free 与 new/delete 的区别
  10. 【hdu1556】Color the ball——树状数组
  11. 5.1、按键SW1控制LED1亮灭
  12. html2canvas给图片添加水印,canvas 为图片添加水印
  13. steam怎么设置邮箱令牌_【教程】电脑端steam动态令牌设置教程
  14. Pintech品致钳形交直流电流探头的主要功能
  15. 嵌入式开发:调试嵌入式软件的技巧
  16. 现场直击大数据行业应用实践
  17. 1982年版《茶馆》内容简要回顾
  18. 常用遥感卫星数据汇总
  19. 【docker】ubuntu18.04 安装 python3、vim、rz
  20. ZZULI - 建国的数学难题

热门文章

  1. 如何让DIV模块随着页面固定和不固定
  2. 非常不错的一些前端动态效果【收集】
  3. pointer-events:none
  4. EBS 报表输出PDF时中文乱码
  5. BOM操作及DOM表单案例练习
  6. JavaScript(四)—— JavaScript 内置对象/JavaScript 简单数据类型与复杂类型
  7. Yaffs2根文件系统制作
  8. 7-211 求前缀表达式的值 (25 分)
  9. 葡萄酒质量和时间的关系
  10. 第三次scrum冲刺