MyBatis框架搭建与代码解读分析
作者:苏少朋
前言:
MyBatis是一个灵活的持久层框架,适合与数据库交互,支持自定义SQL和高级映射。搭建MyBatis的基本步骤包括:
- 环境准备:安装JDK、Maven和IDE。
- 创建项目:建立Maven项目并设置基本信息。
- 添加依赖:在
pom.xml
中引入MyBatis和数据库驱动的依赖。 - 配置MyBatis:创建
mybatis-config.xml
文件,配置数据库连接和Mapper。 - 实现Mapper和模型:编写Mapper接口及其XML文件和对应的模型类。
- 主程序测试:通过主类测试数据库连接和查询。
完成这些步骤后,可以成功建立一个简单的MyBatis项目,实现与数据库的交互
背景介绍
mybatis原来是apache下面的一个开源项目,名为ibatis
2010年开发团队转投Google旗下,更名为MyBatis
MyBatis介绍
MyBatis是一个优秀的数据持久层框(dao层 数据访问层 数据持久层),也就是在Dao层处理数据
MyBatis是对jdbc进行封装,避免了jabc中手动设置参数,手动映射结果的操作
MyBatis将jdbc中的接口进行封装,提供了他自己的类和接口实现
MyBatis可以使用xml配置和注解的方式,将数据库中记录自动映射到Java对象中,是一种ORM实现(对象关系映射) 将可以自动将数据映射到对象中的这种框架,也成为orm框架
MyBatis还提供了动态sql和数据缓存
MyBatis搭建
创建一个maven对象导入MyBatis.jar包创建一个全局的MyBatis配置文件创建数据库定义Dao接口,定义方法创建sql映射文件,编写sql测试MyBatis MyBatis官方网址
https://mybatis.org/mybatis-3/zh_CN/index.html
第一步:创建maven对象
第二步:导入jar包
注:因为mybati是是对mysql的封装,本质上还是与数据的连接操作,所以我们依旧需要导入mysql jar包
第三步:创建MyBatis配置文件并配置文件
配置文件:
<?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> <!-- MyBatis配置文件--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <!-- 为类配置别名--> <typeAliases> <!--<typeAlias type="com.kid.mybatispro.model.Admin" alias="Admin"></typeAlias>--> <package name="com.kid.mybatispro.model"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!--type="POOLED" 使用数据库连接池功能--> <dataSource type="POOLED"> <!-- 数据库连接的配置--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 注册映射文件--> <mappers> <mapper resource="mappers/AdminMapper.xml"></mapper> </mappers> </configuration>
数据库连接池(POOED)
链接数据库,每次访问数据时候,创建一个Connection,用完关闭.但访问量大了后,每次都要创建新的连接对象,用完关闭,比较耗时
使用数据库连接池,在池(集合)中事先创建一些连接对象,用户访问时,就直接池中获取一个链接对象,用完不销毁,还回池中.这样就减少频繁创建销毁连接对象
第四步:创建数据库
create table admin( id int primary key auto_increment, account varchar(20), password varchar(20), gender CHAR(1) )
注:在数据库中填入几组值,方便后面使用 .
第五步:定义接口
package com.kid.mybatispro.dao; import com.kid.mybatispro.model.Admin; import org.apache.ibatis.annotations.Param; import java.util.List; public interface AdminDao { //单个参数传递 Admin findAdminById(int id); Admin findAdminByAccount(int id); //多个参数的传递 Admin login(@Param("acc") String account, @Param("pass") String password); Admin login1(Admin admin); // 添加数据 void insertAdmin(Admin admin); void deleteAdmin(int id); void updateAdmin(Admin admin); int findAdminCount(); String findAdminId(String account); List<Admin> findAdmins(); }
注:接口中定义我们所需的操作
第六步:创建sql映射文件,编写sql
代码:
<?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"> <mapper namespace="接口的地址"> <select id="findAdminById" parameterType="int" resultType="com.ffyc.mybatis.model.Admin"> select * from admin where id = #{id} </select> </mapper>
代码解读:
注:我们可以在配置文件中为类定义别名
我们就就可以简写为:
第七步:测试MyBatis
第一步:读取配置文件
读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
mybatis-config.xml---->为我们定义的配置文件名(创建的第一个.xml文件)
第二步:创建 SqlSessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
read---->上面创建的对象
注:创建 SqlSessionFactory 负责创建SqlSession对象(连接数据库的会话对象,类似Connection) SqlSessionFactory对象只需要创建一次,不需要销毁
第三步:创建SqlSession
SqlSession sqlSession = sessionFactory.openSession();
第四步:获得接口代理对象
sqlSession.getMapper(接口.class); sqlSession .close();关闭
代码:
public static void main(String[] args) throws IOException { //MyBatis读取配置文件 Reader reader = Resources.getResourceAsReader("mybatis.xml"); //创建 SqlSessionFactory 负责创建SqlSession对象(连接数据库的会话对象,类似Connection) //SqlSessionFactory对象只需要创建一次,不需要销毁 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建SqlSession对象 SqlSession sqlSession = sessionFactory.openSession(); //创建接口的代理对象 AdminDao adminDao = sqlSession.getMapper(AdminDao.class); Admin admin = adminDao.findAdminById(1); //让代理对象带我们巧用映射文件中与此接口中相同名称的方法 System.out.println(admin); }
到此这篇关于MyBatis框架搭建与代码解读的文章就介绍到这了,更多相关MyBatis框架搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- 详解idea搭建springboot+mybatis框架的教程
- 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
- Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法
- 详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
- Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(图文)
- 详解MyEclipse中搭建spring-boot+mybatis+freemarker框架
- Spring MVC 4.1.3 + MyBatis零基础搭建Web开发框架(注解模式)
- Java的MyBatis框架项目搭建与hellow world示例
- Windows下Java+MyBatis框架+MySQL的开发环境搭建教程