MyBatis框架学习(一)——mbatis的介绍
来源:互联网 发布:淘宝买家具运费怎么办 编辑:程序博客网 时间:2024/05/22 03:18
MyBatis介绍
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
使用JDBC编程问题总结
介绍完MyBatis之后,我们再来看看使用传统的JDBC编程所带来的问题。
创建mysql数据库
在这儿我使用图形化工具——Navicat for MySQL来创建一个mybatis的数据库,步骤如下:
- 新建一个连接——localhost_3306,右键,在弹出的下拉框中选中【新建数据库】
- 在弹出的对话框中,输入数据库名,选择字符集
然后将如下sql脚本文件——mybatis.sql导入到mybatis数据库中:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
导入步骤记录如下:
- 右键mybatis数据库,在弹出的下拉框中选中【运行SQL文件】
- 在弹出的对话框中选中mybatis.sql脚本文件,点击【开始】按钮开始导入sql脚本文件
创建一个普通的Java工程
首先创建一个普通的Java工程,例如mybatis-day01。然后导入mysql的数据库驱动Jar包。
编写JDBC程序
大家还记得JDBC编程的步骤吗?
- 加载数据库驱动
- 创建并获取数据库连接
- 创建JDBC Statement对象
- 设置sql语句
- 设置sql语句中的参数(使用PreparedStatement)
- 通过Statement执行sql并获取结果
- 对sql执行结果进行解析处理
- 释放资源(ResultSet、PreparedStatement、Connection)
接下来就要按以上步骤来编写编写JDBC程序了,首先在src目录下新建一个名为cn.itheima.mybatis.jdbc的包,然后在该包下编写一个JdbcTest类:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
以上使用JDBC的原始方法(未经封装)实现了查询数据库表记录的操作。
运行以上程序,Eclipse控制台会打印:
通过观察以上程序代码,使用JDBC编程所带来的问题呼之欲出:
问题总结:
1.数据库连接问题,使用时就创建,不适用立即释放,对数据库进行频繁连接开启和关闭
造成数据库资源浪费,影响数据库性能。
2 将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统
维护。 设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译
3 向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java中,
不利于维护。
设想:将sql语句及占位符和参数全部配置在xml中。
4 从resultSet中便利结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于烯烃维护。
- MyBatis框架学习(一)——mbatis的介绍
- MyBatis框架的学习(一)——MyBatis介绍
- MyBatis学习笔记(一)——MyBatis介绍
- MyBatis 学习总结(一)——MyBatis 简单介绍及快速入门
- Mybatis框架基础学习(一)
- Mybatis学习总结(一) 介绍
- MyBatis框架的学习(六)——MyBatis整合Spring
- 【Mybatis】深入浅出Mybatis(二)——Mybatis的框架
- 为什么要用Mybatis框架---Mybatis学习笔记(一)
- mybatis学习日记(一)2-mybatis介绍
- SSM框架学习之(一)Mybatis——原始Dao开发
- 学习ssm框架——Mybatis版本问题解决方案(一)
- Mybatis框架学习笔记一
- mybatis学习一框架搭建
- mybatis介绍(一)
- mybatis介绍(一)
- mybatis介绍(一)
- Mbatis 的#{}和¥{}说明:
- loadrunner Web_类函数之web_image_link()
- 向量空间模型(VSM)算法
- mysql5.6在centos6.9上安装
- 云
- FastDFS与Springboot集成
- MyBatis框架学习(一)——mbatis的介绍
- 大数据集群搭建之Linux的安装(一)
- 【学生信息管理系统】总结
- 大数问题-相加和相乘
- Centos7下安装Docker
- day22-JAVA基础增强(注解开发/servlet3.0)
- MongoDB学习笔记
- 使用sqlmap中tamper脚本绕过waf
- Java程序员面试宝典之"葵花宝典"