IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> MyBastis开发流程 -> 正文阅读

[开发测试]MyBastis开发流程

目录

一、环境搭建

1、导入MyBatis的坐标和其他相关坐标

2、创建数据表

3、编写实体类

4、编写Mapper映射文件(xml开发需要编写)

5、编写配置文件(可选择将配置文件内容直接写入核心文件)

6、 编写MyBatis核心文件

二、使用

1、定义接口(xml开发)

1、定义接口(注解开发)?

2、service层调用?

三、两种开发模式对比


一、环境搭建

1、导入MyBatis的坐标和其他相关坐标

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MyBatis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>3.7.5</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>1.0</version>
        </dependency>

    </dependencies>

</project>

2、创建数据表

3、编写实体类

public class User {
    private int id;
    private String username;
    private String password;
    private Date birthday;
    //以及相应的get、set、toString方法
}

4、编写Mapper映射文件(xml开发需要编写)

<?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="dao.UserMapper">
<mapper namespace="userMapper">    
	<select id="findAll" resultType="domain.User">        
		select * from User    
	</select>
</mapper>

5、编写配置文件(可选择将配置文件内容直接写入核心文件)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=998516

6、 编写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>

    <!--    通过properties标签加载外部properties文件-->
    <properties resource="jdbc.properties"></properties>
    
    <!--    注意:typeAliases标签的位置需要处于properties标签、settings标签后面,其它标签的前面!!!!-->
    <!--    自定义别名-->
    <typeAliases>
        <!--       mybatis已经把基本数据类型的别名封装好了-->
        <typeAlias type="domain.User" alias="user"></typeAlias>
        <typeAlias type="domain.Order" alias="order"></typeAlias>
        <typeAlias type="domain.Role" alias="role"></typeAlias>
    </typeAliases>
    
    <!--    注册类型处理器-->
    <typeHandlers>
        <typeHandler handler="handler.DateTypeHandler"></typeHandler>
    </typeHandlers>
    
    <!--    配置分页插件-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <property name="dialect" value="mysql"></property>
        </plugin>
    </plugins>

    <!--数据源环境-->
    <environments default="developement"> <!--default用于选择默认environment -->
        <environment id="developement">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>


    <!--    加载映射文件  (xml开发) -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"></mapper>
        <mapper resource="mapper/OrderMapper.xml"></mapper>
    </mappers>


     <!--    加载映射关系  (注解开发)-->
    <mappers>
        <!--        指定接口所在的包-->
        <package name="dao"/>
    </mappers>
    

</configuration>

二、使用

1、定义接口(xml开发)

1、定义接口(注解开发)?

     //保存
    @Insert("insert into user values (#{id},#{username},#{password},#{birthday})")
    public void save(User user);
    // 删除
    @Delete("delete from user where id=#{id}")
    public void delete(int id);
    // 修改
    @Update("update user set username=#{username} , password=#{password}  where id=#{id}")
    public void update(User user);
    //查询所有
    @Select("select * from user")
    public List<User> findAll() throws IOException;
    //根据id查询
    @Select("select * from user where id=#{id}")
    public User findById(int id);

2、service层调用?

 InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        List<User> userList = mapper.findAllOrder();
        for (User user : userList) {
            System.out.println(user);
        }

        sqlSession.close();

三、两种开发模式对比

1.从开发效率来说,注解编写更简单,效率更高。

2.从可维护性来说,注解如果要修改,必须修改源码,会导致维护成本增加;xml维护性更强。

建议:

单表操作的情况,可以使用注解查询,因为单表操作,SQL变化的几率很小
多表复杂查询时,建议用XML方式,可维护性更好,更灵活
?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:49:55  更:2022-05-05 11:51:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:40:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码