做网站找众展,网站后台注入,做企业网站一定要企业邮箱嘛,wordpress微商授权上一篇文章中#xff0c;我们学习了使用mybatis框架连接mysql。在这篇文章中#xff0c;我们将聚焦于我们的调用方#xff0c;即相应的实际项目#xff0c;其中包含了对mymybatis框架的引用。以一个常见而又典型的例子来说明这一点——制作一款学生管理系统#xff08;伪我们学习了使用mybatis框架连接mysql。在这篇文章中我们将聚焦于我们的调用方即相应的实际项目其中包含了对mymybatis框架的引用。以一个常见而又典型的例子来说明这一点——制作一款学生管理系统伪。这个所谓的“项目”显然无法像之前那样依靠创建jdbc连接并且一条一条地编写SQL语句来解决问题因为任何一项正常的开发流程都不应该如此生硬。
我们需要根据实际情况创造性地制定并设置一份含有相关内容的文档文件也被称为“配置文件”。其中包含了各种数据库的具体参数信息。接下来我们只需专注于编写具体的功能性代码以及正确传递所需的参数并在这个基础上编写适当的SQL语句即可与我们平常使用mybatis框架的场景无异即和上一篇文章无太大的差别。
首先我们需要创建一个正常的maven项目。这里我们就叫做my-mybatis-demo 正常的项目都会像我们这样引入一个jar包在pom文件中。 ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.masiyi/groupIdartifactIdmy-mybatis/artifactIdversion1.0-SNAPSHOT/version/parentgroupIdcom.masiyi/groupIdartifactIdmy-mybatis-demo/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdcom.masiyi/groupIdartifactIdmy-mybatis-core/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies
/project这里面我们先暂且取名叫做my-mybatis-core最基础的我们要有一个对应表数据结构的一个实体类。就是我们在上一篇中的user表。这里我们使用驼峰命名法。
package com.masiyi.entity;import lombok.Data;Data
public class User {private Integer id;private String name;private Integer age;}
这里的Data是lombok中的注解待会我们会在我们框架中引入我们先不管。
之后我们需要有一个接口去定义我们的方法以实现SQL的编写。这里我们就叫userdao里面定义了两个方法一个是findAll()查询全部一个是findById(Integer id)根据id查询。返回值则全是 ListUser。
package com.masiyi.dao;import com.masiyi.entity.User;import java.util.List;public interface UserDao {/*** 查询全部* return*/ListUser findAll();/*** 根据id查询* param id* return*/ListUser findById(Integer id);}
用过mybatis框架的同学肯定知道每一个dao接口肯定是有一个xml文件去对应的。而xml文件里面就是写我们sql的地方,这里面我们取名叫做UserMapper.xml。其中我们可以自定义一个类似mybatis中的标签叫什么都无所谓但是方别大家与mybatis相比较我们还是使用mybatis的命名方式取名叫mapper namespacecom.masiyi.dao.UserDao这里就是对应着UserDao接口的类全路径。
mapper namespacecom.masiyi.dao.UserDaoselect idfindAll resultTypecom.masiyi.entity.Userselect * from user/selectselect idfindById resultTypecom.masiyi.entity.User parameterTypejava.lang.Integerselect * from user where id #{id}/select/mapper这里面的 select标签也是可以自定义比如叫myselect都行最后我们在自定义框架中解析就行了里面也和mybatis一样使用一个id属性来对应着里面的方法最后写一个resultType返回值和parameterType传进来的参数值。
在对应的select标签中我们写上我们的sql就像上面我们的代码里面的sql一样就行了。
除了写sql的xml文件我们还需要一个写我们数据库信息的配置文件。这里我们就叫他myMybatisConfig.xml
configuration!--1.配置数据库信息--dataSourceproperty namedriverClassName valuecom.mysql.jdbc.Driver/propertyproperty nameurl valuejdbc:mysql://localhost:3306/test_ob/propertyproperty nameusername valuerootmsy/propertyproperty namepassword valueroot/property/dataSource!--2.引入映射配置文件--mappersmapper resourcemapper/UserMapper.xml/mappermapper resourcemapper/UserMapperCopy.xml/mapper/mappers/configuration配置数据库信息里面我们主要写的也是和mybatis一模一样的驱动类url地址用户名密码.注意这里的名字和里面的标签也可以随便写我们也使用name和value值做一个区分。到时候我们自己再写框架的时候取对应的数据就行了这里只是做一个示范我们暂时就叫我们上面的名字。
引入映射配置文件,这里我们把我们上面装sql的xml文件给拿过来假如我们的框架有很多的mapper文件我都将他们引入进来注意这里都是写在resource目录下面。就像我们现在的项目架构一样 最后我们可以编写一个测试文件来测试我们的自己写的框架。
package com.masiyi;import com.masiyi.dao.UserDao;
import com.masiyi.entity.Configuration;
import com.masiyi.entity.User;
import com.masiyi.executor.SimpleSqlSession;
import com.masiyi.io.Resources;
import com.masiyi.parse.ConfigParse;
import com.masiyi.util.MyMybatisUtil;import java.io.InputStream;
import java.util.List;/*** Author masiyi* Date 2023/11/10* PackageName:com.masiyi* ClassName: MybatisTest* Description: TODO* Version 1.0*/
public class MybatisTest {public static void main(String[] args) {InputStream resourceAsSteam Resources.getResourceAsStream(myMybatisConfig.xml);Configuration configuration new ConfigParse().parse(resourceAsSteam);SimpleSqlSession simpleSqlSession new SimpleSqlSession(configuration);UserDao userDao simpleSqlSession.newProxyClass(UserDao.class);userDao.findAll().forEach(System.out::println);// 释放资源simpleSqlSession.close();}}
这里是使用MyMybatis框架进行数据库操作给大家做一个解释。
首先通过Resources.getResourceAsStream(“myMybatisConfig.xml”)方法获取了一个名为myMybatisConfig.xml的配置文件的输入流。这个配置文件包含了MyMybatis框架的相关配置信息比如数据库连接信息、映射文件等。 InputStream resourceAsSteam Resources.getResourceAsStream(myMybatisConfig.xml);接下来通过ConfigParse().parse(resourceAsSteam)方法将配置文件的输入流解析成一个Configuration对象。Configuration对象包含了框架的配置信息比如数据库连接信息、映射文件等。 Configuration configuration new ConfigParse().parse(resourceAsSteam);然后创建了一个SimpleSqlSession对象将上一步解析得到的Configuration对象传入。SimpleSqlSession是MyMybatis框架中的核心类它负责管理数据库连接和执行SQL语句。 SimpleSqlSession simpleSqlSession new SimpleSqlSession(configuration);接着通过simpleSqlSession.newProxyClass(UserDao.class)方法创建了一个UserDao接口的代理类。代理类是MyMybatis框架根据接口定义和映射文件自动生成的它封装了数据库操作的具体实现。 UserDao userDao simpleSqlSession.newProxyClass(UserDao.class);最后通过调用userDao.findAll()方法执行数据库查询操作并使用forEach(System.out::println)打印查询结果。 userDao.findAll().forEach(System.out::println);最后调用simpleSqlSession.close()方法释放资源关闭数据库连接。 simpleSqlSession.close();编写几个重要的文件完成之后我们项目的情况结构大体就是这样 今天这篇文章我们就先写到这里。下一篇文章我们开始根据测试类里面的方法去构建我们的自定义框架MyMybatis最后给大家看一下我们这个框架实现的效果 findById 方法 数据库里面的数据 可以看到和我们上一篇文章里面达到的效果是一样的。如果说大家对这篇文章有兴趣的话大家可以先点一波关注最后我们在下一篇文章与大家再见。 另外如果对Elastic Search感兴趣的话推荐一下我的专栏这篇专栏介绍了Elasticsearch的Restful API的入门指南。学习如何使用API进行索引、搜索和分析包括创建索引、定义映射、添加文档、执行查询等。通过实例和代码片段快速上手Elasticsearch的Restful API构建强大的搜索功能。感谢大家支持
Elastic Search的RestFul API入门