首页 > 其他分享 >搭建MyBatis工程

搭建MyBatis工程

时间:2024-01-27 10:57:10浏览次数:25  
标签:工程 映射 id role MyBatis org log4j 搭建

快速搭建MyBatis工程

第一步:创建一个maven的工程

这里使用maven来创建MyBatis工程

第二步:导入相关依赖

需要导入MyBatis工程中对应的依赖,以及后期所需要的依赖

<dependencies>
        <!--mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
        <!--mysql的依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <!--lombok依赖[1]idea安装lombok插件 [2]引入依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <!--junit单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--日志log4j依赖-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
    </dependencies>

注意一点:每次导入依赖时,都需要刷新一下maven。

第三步:设置实体类

根据数据库的列名与表名设计实体类

数据库的相关信息:(表名Role)

 实体类:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Role {
    private Integer id;
    private String role_name;
    private String role_code;
    private String description;
}

注意:

①这里的数据库列名要与实体类的属性名一致

②这里基本数据类型要改成其对应的包装类型。

第四步: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="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--数据库驱动器-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--数据库的连接路径-->
                <property name="url" value="jdbc:mysql://localhost:3306/day124?serverTimezone=Asia/Shanghai"/>
                <!--用户账号-->
                <property name="username" value="root"/>
                <!--用户密码-->
                <property name="password" value="1qaz2wsx"/>
            </dataSource>
        </environment>
    </environments>
    <!--引入对应的映射文件注意:改为自己的映射文件-->
    <mappers>
        <!--第一种是根据资源文件进行映射,一般用于通过xml文件进行映射-->
        <mapper resource="mapper/RoleMapper.xml"/>
        <!--第二种是根据类名进行映射,注意:类名需要全称,一般用于通过注解形式映射-->
        <mapper class="com.hrc.dao.MyRoleDao"/>
    </mappers>
</configuration>

第五步:配置日志文件

由于maven中导入log4j依赖,这里将介绍如何使用日志输出。

首先在resources文件下创建一个名称为log4j.properties文件

文件中添加日志信息

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUGdriver

第六步:设置映射接口和映射文件

映射接口:

//习惯将自己写方法,然后通过接口来调用方法
public interface RoleDao {
    //比如写查询所有的方法
    public List<Role> queryAll();
}

映射文件:

一般写在resources包下创建一个mapper包来存放映射文件

 映射文件内容:

<?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:这里是映射接口对应的地址全称-->
<mapper namespace="com.hrc.dao.RoleDao">
<!--id:是RoleDao的一个方法名-->
    <!--
        <insert>:这个标签主要用来添加操作 
    -->
    <insert id="insert">
        insert  into t_role values (null,#{roleName},#{roleCode},#{description})
    </insert>
    <!--
        <update>:这个标签主要用来修改操作 
    -->
    <update id="update">
        update t_role set role_name=#{roleName},role_code=#{roleCode},description=#{description} where id=#{id}
    </update>
    <!--
        <delete>:这个标签主要用来删除操作 
    -->
    <delete id="delete">
        delete from t_role where id = #{id}
    </delete>
    <!--
        <select>:这个标签主要用来查询 
    -->
    <select id="selectOne" resultType="com.hrc.entity.Role">
        select * from t_role where id=#{id}
    </select>
</mapper>

注意一点:写好映射文件后需要在MyBatis配置文件中写好对应的映射关系。

比如:

第七步:测试

public class RoleTest {
    @Test
    public void queryTest() throws Exception{
        //读取 MyBatis配置文件资源
        //import org.apache.ibatis.io.Resources; 注意这里导入的包必须是ibatis下的
        Reader resourceAsReader = Resources.getResourceAsReader("mybatis.xml");
        //创建SqlSessionFactory工厂(根据读取mybatis配置文件进行创建)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);
        //开启SqlSession会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //通过映射关系,获取映射文件中对应的接口
        RoleDao roleDao = sqlSession.getMapper(RoleDao.class);
        //通过接口调用相关查询方法
        List<Role> roleList = roleDao.queryAll();
        //将结果输出
        System.out.println("roleList = " + roleList);
    }
}

效果展示:

 

标签:工程,映射,id,role,MyBatis,org,log4j,搭建
From: https://www.cnblogs.com/gzyhrc/p/17991186

相关文章

  • MyBatis简易教程
     MyBatis是数据库访问层框架,是一个应用层框架。 MyBatis简易教程(01):mybatis基础MyBatis简易教程(02):mybatis动态sqlMyBatis简易教程(03):mybatis关联映射(一对一)MyBatis简易教程(04):mybatis关联映射(一对多、多对一)MyBatis简易教程(05):mybatis关联映射(多对多)MyBatis简易教程(06):MyBati......
  • 24校招,经纬恒润测试工程师PPT技术二面
    前言大家好,我是chowley,今天回顾一下之前参加的PPT工程师面试(doge)面试官针对我的PPT进行提问,梦回大学课堂时间:40min平台:腾讯会议过程20minPPT展示PPT做了多长时间?你觉得你展示的内容怎么样?CI/CDpipeline中接口自动化脚本是你自己写的吗?你负责哪些部分?快速测试你是怎么......
  • spring boot mybatis plus & tk-mybatis
    使用Mybatis时,最大的问题是,要写大量的重复SQL语句在xml文件中,除了特殊的业务逻辑SQL语句之外,还有大量结构类似的增删改查SQL。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这大量增加了程序员的负担。避免重复书写CRUD映射的框架有两个通用mybati......
  • 极速搭建基于mvc5的最小框架
    前言开发环境vs2019创建项目项目文件结构新建控制器新建视图编写视图代码编写控制器代码修改默认路由运行测试查看结果......
  • 物联网工程师技术之C语言IO输入输出技术
    本章重点​语句和语句块​printf函数​scanf函数在C语言编程中,经常需要通过输入设备(如键盘)向程序录入信息,或者将信息显示在输出设备(如屏幕),这时,可以使用输入输出语句来完成。输入输出语句是用户与程序交互的唯一途径,掌握好输入输出语句对后面的学习至关重要。本章将针对输入......
  • 测试管理| 从零到一:我的测试开发工程师之路
    霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。在我成为测试开......
  • 自动化测试平台搭建背景及记录
    在目前产品的迭代过程中,公司现有的自动化测试体系存在很多问题,大多数情况是人工进行用例回归测试,低效且易出错,导致测试流程在效率和品质方面均未达到理想状态。同时,业务上线周期的日益缩短也导致产品质量的不稳定性也愈发突出,出现版本质量不统一的问题。流程下也伴随着以下痛点:测试......
  • [职场] 水处理工程师的简历范文
    水处理工程师是一个专门从事水处理技术研究与应用,负责水处理系统的设计、安装、调试、运营及维护的工程技术人员。如果你即将面试这一职业,本文会详细讲解如何写简历范文,希望对你有所帮助。一、水处理工程师是什么水处理工程师是一个专门从事水处理技术研究与应用,负责水处理系统的设......
  • 自动化测试平台搭建背景及记录
    在目前产品的迭代过程中,公司现有的自动化测试体系存在很多问题,大多数情况是人工进行用例回归测试,低效且易出错,导致测试流程在效率和品质方面均未达到理想状态。同时,业务上线周期的日益缩短也导致产品质量的不稳定性也愈发突出,出现版本质量不统一的问题。流程下也伴随着以下痛点:......
  • MetaGPT day05 MetaGPT 爬虫工程师智能体
    Metagpt爬虫智能体需求1.用ActionNode重写订阅智能体,实现自然语言爬取解析网站内容2.根据尝试实现思路1,即使用llm提取出需要的信息而不是写爬虫代码。3.目前,订阅智能体是通过RunSubscription运行的,即RunSubscription这个action,不仅创建了订阅智能体代码,并启动了Subscriptio......