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语句再调用即可,最后完整增删查改如下:
最新文章
- 虚拟机安装LINUX网络配置注意的问题
- HTML DOM scale() 方法
- UNITY3D在IOS开发下的反射机制限制
- [CareerCup] 14.6 CircularArray 环形数组
- GCD的多线程实现方式,线程和定时器混合使用
- SecureCRT控制台显示中文字符的设置
- Laravel中间件
- poj2635The Embarrassed Cryptographer(同余膜定理)
- 复位windows网络参数的方法
- RPA简介
- CodeForces - 1051D Bicolorings(DP)
- ajax常见的面试问题
- Oracle 11gR2 RAC 常用维护操作 说明
- golang label breaks
- hdu 6097 Mindis(数学几何,圆心的反演点)
- poll机制实例参考
- 使用tomcat作为容器安装Jenkins
- 九度oj 题目1366:栈的压入、弹出序列
- Django-models-m2m
- Codevs 2956 排队问题