欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > MyBatis框架介绍、部署及使用

MyBatis框架介绍、部署及使用

2024/11/29 22:00:49 来源:https://blog.csdn.net/f135917h/article/details/144068544  浏览:    关键词:MyBatis框架介绍、部署及使用

一、MyBatis介绍

1.1 框架概念

**框架:**就是软件的半成品,完成了软件开发过程中的通用操作,开发者只需很少或者不用进行加工,就能 实现特定的功能。从而简化开发人员在开发过程中的步骤,提高开发效率。

1.2 常用框架

  • MVC框架:简化Servlet的开发步骤
    • Struts2
    • SpringMVC
  • 持久层框架:完成数据库操作框架
    • apache DBUtils
    • Hibernate
    • Spring JPA
    • MyBatis
  • 胶水框架:Spring整合作用

SSM: Spring SpringMVC MyBatis

SSH:Spring Struts Hibernate

1.3 MyBatis介绍

MyBatis:是一个半自动的ORM框架

​ ORM(Object Relational Mapping) 对象关系映射,将Java中的一个对象与数据表中一行记录一一对应

​ ORM框架提供了实体类与数据表的映射关系,通过映射文件的配置,实现对象的持久化。

  • MyBatis,前身是iBatis,iBatis是Apache软件基金会提供的一个开源项目
  • 2010年,iBatis迁移到Gogle code,正式更名为MyBatis
  • 2013年,迁移到Github托管
  • MyBatis特点:
    • 支持自定义SQL/存储过程
    • 对原有的JDBC进行了封装,几乎消除了所有的JDBC代码,让开发者只需关注SQL本身
    • 支持XML和注解配置方式自动完成ORM,实现结果映射

二、MyBatis框架部署

框架部署,将框架引入到我们的项目中

2.1 创建Maven项目

  • Java工程
  • JavaWeb工程

2.2 添加MyBatis依赖

  • 在pom.xml中添加依赖

    • mybatis
    • mysql driver
    	<!--Mysql-->	<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.2.0</version></dependency><!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency>
    

    2.3 创建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><!--配置数据库连接信息--><environments default="mysql"><environment id="mysql"><!--用于配置数据库管理方式--><transactionManager type="JDBC"></transactionManager><!--配置数据库连接方式--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db_test?characterEncoding=utf-8"/><property name="username" value="root"/><property name="password" value="***"/></dataSource></environment></environments>
</configuration>
  • 在项目工程resource中新建mybatis-config.xml
  • mybatis-config.xml中配置数据库连接信息

三、Mybatis框架使用

案例:学生信息的数据库操作

3.1 创建数据表

CREATE TABLE `students` (`stu_num` char(8) NOT NULL,`stu_name` varchar(20) NOT NULL,`stu_denger` char(2) NOT NULL,`stu_age` int NOT NULL,`stu_tel` char(11) NOT NULL,`stu_qq` varchar(11) DEFAULT NULL,`cid` int DEFAULT NULL,PRIMARY KEY (`stu_num`),KEY `FK_STUDENT_CLASS` (`cid`),CONSTRAINT `FK_STUDENT_CLASS` FOREIGN KEY (`cid`) REFERENCES `class` (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

3.2 创建实体类

package com.feng.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student {private String stu_num;private String stu_name;private int age;private String stu_denger;private String stu_tel;private String stu_qq;private int cid;
}

3.3 创建DAO接口

创建接口,并定义方法 addStudent;

package com.feng.dao;import com.feng.pojo.Student;public interface StudentDao {public int addStudent(Student student);
}

3.4 创建DAO接口的映射文件

  • 在resources目录下,新建mappers文件夹
  • 在mappers文件夹中新建StudentMapper.xml的映射文件(与实体类同名映射文件)
  • 在映射文件中,对DAO中定义的方法进行实现
<?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相当与DAO接口的实现类,namespace属性要指定实现DAO接口的全限定名-->
<mapper namespace="com.feng.dao.StudentDao"><insert id="addStudent" parameterType="com.feng.pojo.Student">insert into students(stu_name,stu_name,stu_age,stu_denger,stu_tel,stu_qq,cid)values (#{stu_num},#{stu_name},#{stu_age},#{stu_denger},#{stu_tel},#{stu_qq},#{cid})</insert>
</mapper>

3.5 将映射文件添加到主配置文件

  <mappers><mapper resource="mappers/StudentMapper.xml"></mapper></mappers>

四、单元测试

package com.feng.dao;import com.feng.pojo.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;import static org.junit.Assert.*;public class StudentDaoTest {@org.junit.Testpublic void addStudent() throws IOException {//加载mybatis配置文件InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");//构建session工厂SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();//会话工厂SqlSessionFactory factory = sqlSessionFactoryBuilder.build(inputStream);//会话(连接)SqlSession sqlSession = factory.openSession();//通过会话,获取dao对象StudentDao studentDao = sqlSession.getMapper(StudentDao.class);//测试dao方法Student student = new Student();student.setStu_num("9");student.setStu_name("太乙真人");student.setStu_age(88);student.setStu_denger("男");student.setStu_tel("123312312");student.setStu_qq("877877");student.setCid(2);int i = studentDao.addStudent(student);sqlSession.commit();sqlSession.close();inputStream.close();System.out.println(i);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com