Mybatis入门简版(一)
一、Mybatis介绍
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
二、jdbc问题总结如下:
- 数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决此问题。
- Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。
- 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
- 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。
三、使用MyBatis需要进行配置
要用到SqlMapConfig.xml和mapper.xml。
SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。
mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
四、第一个MyBatis框架程序
------------------------------------Mybatis环境搭建----------------------------------------------------
- 导Jar包
导三类:Mybatis核心jar,Mybatis所依赖的jar,数据库驱动(比如MySQL)
mybatis-3.2.7.jar mybatis的核心包
lib文件夹 mybatis的依赖包所在
- 创建一个普通Java工程 并将jar包导到其下的lib目录且Build Path
- 导入数据库和POJO(也就是上学期的vo包)模块
- 创建相关配置文件
Src/config下创建Mybatis核心配置文件:SqlMapConfig.xml
如下(固定格式):
<?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>
<!-- 和spring整合后 environments配置将废除 -->
<environments
default="development">
<environment
id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager
type="JDBC"
/>
<!-- 数据库连接池 -->
<dataSource
type="POOLED">
<property
name="driver"
value="com.mysql.jdbc.Driver"
/>
<property
name="url"
value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"
/>
<property
name="username"
value="root"
/>
<property
name="password"
value="root"
/>
</dataSource>
</environment>
</environments>
</configuration>
创建sqlmap/User.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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">
</mapper>
- 告诉核心配置文件我加了映射文件
---------------------------开始编写代码测试-------------------------------------------------------
- 创建如下:
- 编写如下Java调用Mybatis的代码:
- 编写SQL映射文件里的SQL语句(User.xml中)
- <!-- id:statement的id 或者叫做sql的id-->
- <!-- parameterType:声明输入参数的类型 -->
- <!-- resultType:声明输出结果的类型,应该填写pojo的全路径 -->
- <!-- #{}:输入参数的占位符,相当于jdbc的? -->
- <select
id="queryUserById"
parameterType="int" - resultType="cn.itcast.mybatis.pojo.User">
- SELECT * FROM `user` WHERE id = #{id}
- </select>
--------------------------------------编写完毕,查看结果和问题-------------------------
- User.xml里的返回类型得写对cn.test.pojo.User
- SqlMapConfig.xml里数据库名和账号密码得写对
OK,这个Mybatis框架的第一个程序就搞定了。
其余的增删查改同理(除了查,其它都要提交事物),在那个User.xml里写sql语句再调用即可,最后完整增删查改如下:
Mybatis入门简版(一)的更多相关文章
- Mybatis入门简版(二)
一.Dao层开发的方式 以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码.那么此时改成另外一种简单形式. 遵循以下四个原则(名称.形参.返回 ...
- Mybatis入门简版(补充)
一.Mybatis 中$与#的区别 #相当于对数据 加上 双引号,$相当于直接显示数据 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#, ...
- Underscore源码阅读极简版入门
看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-an ...
- Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门
本章将涵盖以下话题: ž MyBatis是什么? ž 为什么选择MyBatis? ž MyBatis安装配置 ž 域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...
- MyBatis从入门到精通(1):MyBatis入门
作为一个自学Java的自动化专业211大学本科生,在学习和实践过程中"趟了不少雷",所以有志于建立一个适合同样有热情学习Java技术的参考"排雷手册". 最近在 ...
- Spring Boot (七): Mybatis极简配置
Spring Boot (七): Mybatis极简配置 1. 前言 ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 H ...
- Spring Boot 实战 —— MyBatis(注解版)使用方法
原文链接: Spring Boot 实战 -- MyBatis(注解版)使用方法 简介 MyBatis 官网 是这么介绍它自己的: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过 ...
- 第一节:mybatis入门
1.新建数据表 本次测试使用mysql数据,数据库名称为mybatis,新建一张表person,建表语句如下: CREATE TABLE `person` ( `id` ) PRIMARY KEY a ...
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
随机推荐
- Android Q 正式命名为 Android 10
根据官方博文,谷歌已经公布了 Android Q 的名称,它并不是想以前一样,以甜食命名,也不是以任何以字母 Q 开头来命名,而是简单称它为 Android 10. 该公司表示,它正在改变其发布版本的 ...
- 自荐RedisViewer一个有情怀的跨平台Redis可视化客户端工具
自荐一个有情怀的跨平台Redis可视化客户端工具--RedisViewer 转载自 最美分享Coder 2019-09-17 06:31:00 介绍 在以往的文章中曾经介绍过几款Redis的可视化工具 ...
- FastReport安装包下载、安装、去除使用限制以及工具箱中添加控件
场景 FastReport .NET 2019是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2 ...
- Hive数据导入/导出
1.1 导入/导出规则 EXPORT 命令导出数据表或分区,与元数据一起输出到指定位置.又可以从这个输出位置移动到不同的Hadoop 或Hive 实例中,并且使用IMPORT 命令导入. 当导出一个分 ...
- MySQL查看当前用户
mysql> select current_user();+----------------+| current_user() |+----------------+| root@localho ...
- 〈二〉ElasticSearch的认识:索引、类型、文档
目录 上节回顾 本节前言 索引index 创建索引 查看索引 查看单个索引 查看所有索引 删除索引 修改索引 修改副本分片数量 关闭索引 索引别名 增加索引别名: 查看索引别名: 删除索引别名: 补充 ...
- 校园网打开IEEE 显示未登录
校园网访问IEEE 显示未登录,如图 解决办法 1.打开网络和共享中心 2.如图 3.把ipv6的钩去掉 4.把host文件(在C:\Windows\System32\drivers\etc)复制到桌 ...
- netCDF4 not installed properly - DLL load failed (netCDF4安装问题)
环境描述:windows10 ,conda,python3.6 问题描述:netCDF4是python中用来处理地球气象数据的文件读取包,在安装完成后,from netCDF4 import Data ...
- elastic集群单节点停机维护
为了elastic时时提供服务,需要elastic至少状态维持在yellow状态.所有,维护时需要依次对elastic单个节点进行维护. 操作步骤如下: 1.停止elastic的自动分配功能 curl ...
- web前端开发面试题(附答案)-1
1.浏览器中输入url到网页显示,整个过程发生了什么 域名解析 发起tcp三次握手 建立tcp连接之后发起htttp请求 服务器端响应http请求,浏览器得到html代码 浏览器器解析html代码,并 ...