学习MyBatis第一天
2021/11/9 23:41:33
本文主要是介绍学习MyBatis第一天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
学习MyBatis框架之前,先来了解一下什么是框架?
框架,其实就是软件的半成品,完成了软件开发过程中的通用操作,开发人员只需要很少或者不用进行加工就能实现特定的功能,从而简化开发人员在开发过程中的步骤,提高开发效率。
常用的框架:
- MVC框架:简化Servlet的开发步骤
- Struts
- Struts2
- SpringMVC
- 持久层框架:完成数据库操作的框架
- Apache DBUtils
- Hibernate
- Spring JPA
- MyBatis
- 胶水框架:Spring
SSM Spring + SpringMVC + MyBatis
SSH Spring + Struts2 + Hibernate
MyBatis介绍
MyBatis是一个半自动的ORM框架
ORM(Object Relation Mapping)对象关系映射,将Java中的一个对象与数据表中一行记录一一对应。
ORM框架提供了实体类与数据表的映射关系,通过映射文件的配置实现对象的持久化。
MyBatis的特点:
- 支持自定义的SQL、存储过程
- 对原有的JDBC进行封装
- 支持XML和注解配置方式自定义完成ORM操作,实现结果映射
MyBatis框架在IDEA中部署
框架部署,就是将框架引入到项目中
创建Maven工程:Java/web都可以
下面演示创建Java工程:
创建好的Java项目结构
在项目中添加Maven依赖(jar包)
在pom.xml文件中添加依赖(myBatis、mysql driver)
<dependencies> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!--mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> </dependencies>
创建MyBatis配置文件
- 在resource中创建名为mybatis-config.xml的文件
- 在mybatis-config.xml文件中配置数据库连接信息
<configuration> <!--在environments配置数据库连接信息--> <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_fmwy?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> </configuration>
MyBatis框架使用
创建数据表:
创建实体类;
创建DAO接口,定义操作方法
public interface StudentDAO { //添加 public int insertStudent(Student student); //删除 public int deleteStudent(String stuNum); }
创建DAO接口的映射文件
在resource目录下,新建名为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 namespace="com.qgc.dao.StudentDAO"> <insert id="insertStudent"> insert into tb_students(stu_num,stu_name,stu_gender,stu_age) value (#{stuNum},#{stuName},#{stuGender},#{stuAge}) </insert> <delete id="deleteStudent"> delete from tb_students where stu_num=#{stuNum} </delete> </mapper>
将映射文件添加到主配置文件中
<?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配置数据库连接信息--> <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_fmwy?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mappers/StudentMapper.xml"></mapper> </mappers> </configuration>
创建单元测试类
添加单元测试依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
创建单元测试类
添加测试代码
public class StudentDAOTest { @org.junit.Test public void insertStudent() { try { //加载mybatis配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //会话工厂 SqlSessionFactory factory = builder.build(is); //会话连接 SqlSession sqlSession = factory.openSession(); //通过会话获取DAO对象 StudentDAO studentDAO = sqlSession.getMapper(StudentDAO.class); //测试StudentDAO中的方法 int i = studentDAO.insertStudent(new Student(0,"10001","张三","男",21)); //需要手动提交 sqlSession.commit(); System.out.println(i); } catch (IOException e) { e.printStackTrace(); } } }
这篇关于学习MyBatis第一天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)