在idea中创建maven工程,搭建mybatis框架,完成单表增删改查操作,测试

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在idea中创建maven工程,搭建mybatis框架,完成单表增删改查操作,测试

一、idea中创建maven工程

选择file–>new–>project,选择maven和与自己相搭配的jdk**

创建好项目组地址,方便结构清晰

选择自己的项目路径,点击完成。

二、idea中搭建mybatis框架

三、idea中完成单表增删改查操作

二、配置maven
创建对应的java项目,引入需要的mybatis需要的jar,以及连接数据库的jar包(我用的数据库为mysql)

<?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>com.file</groupId>
<artifactId>MyBatisTest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
    <!-- 测试包 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <!-- mybatis核心包 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <!-- mysql驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.10</version>
    </dependency>
</dependencies>

三、创建数据库
创建简单的小型测试类数据库

四、创建实体类与接口
1、在项目中src–>main–>java目录下创建包以及测试类

package com.Test;

public class User {

public Integer id;

public String name;
public String password;

public User() {
    super();
}

public User(Integer id,String name, String password) {
    this.id = id;
    this.name = name;
    this.password = password;
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

@Override
public String toString() {
    return "User{" +"id=" + id + ","
            + " name='" + name + '\'' + ", "
            + "password='" + password + '\'' + '}';
}

}

2、在包下新建一个接口(UserMapper)

package com.Test;

import java.util.List;

public interface UserMapper {

    //查询所有信息
    public List<User> queryAll();

    //添加
    public void addUser(User user);

    //修改
    public boolean updateUser(User user);

    //根据id删除信息
    public void deleteUserById(int id);
}

五、配置文件
1、在resources新建一个properties文件

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/db_test?characterEncoding=UTF-8
jdbc.username = root
jdbc.password =123456

2、在resources新建一个xml文件

<?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">

<!--
    mybatis可以使用properties来引入外部properties配置文件的内容
    resource:引入类路径下的资源
 -->
<properties resource="db.properties"></properties>

<!-- environments:环境,mybatis可以设置多种环境;default指定使用某种环境,可以达到快速切换环境
         environment:配置一个具体的环境信息;必须有两个标签;id代表当前环境的唯一标识
              type:事务管理器的类型;JDBC(JdbcTransactionFactory)MANAGED(ManagedTransactionFactory)
                   自定义事务管理器:实现TransactionFactory接口,type指定为全类名
          dataSource:数据源
               type:数据源UNPOOLED(UnpooledDataSourceFactory)
                           POOLED(PooledDataSourceFactory)
                           JNDI(JndiDataSourceFactory)
                           自定义数据源:实现DataSourceFactory接口,type是全类名
 -->
<environments default="db_test">
    <environment id="db_test">
        <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>

<!-- databaseIdProvider:支持多数据库厂商的;
            type="DB_VENDOR":VendorDatabaseIdProvider
                作用就是得到数据库厂商的标识(驱动getDatabaseIDProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
 -->
<databaseIdProvider type="DB_VENDOR">
    <property name="MySQL" value="mysql"/>
</databaseIdProvider>

<mappers>
    <mapper resource="UserMapper.xml"/>  <!-- sql映射文件路径 -->
</mappers>

3、配置SQL映射文件, 在resources新建一个xml文件(UserMapper.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">

<!--
    namespace :名称空间;指定接口的全类名
    id:唯一标识(建议用接口中对应的方法名命名)
    resultType:返回值类型
-->
<select id="queryAll" resultType="com.Test.User">
    select * from tb_user
</select>
<!--
      自增主键值的获取,mybatis也是利用statement.getGeneratedKeys();
      useGeneratedKeys="true";使用自增获取主键值策略
      keyProperty:指定对应的主键值,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性
-->
<insert id="addUser" useGeneratedKeys="true" keyProperty="id">
    insert into tb_user(name,password) values(#{name},#{password})
</insert>
<!-- 根据name修改password的值 -->
<update id="updateUser">
    update tb_user set password=#{password} where name=#{name}
</update>
<delete id="deleteUserById">
    delete from tb_user where id=#{id}
</delete>

六、测试
在 src / test / java 下新建一个类(Test)
1、测试添加

import com.Test.User;
import com.Test.UserMapper;
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 java.util.List;

public class Test {

public SqlSessionFactory getSqlSessionFactory() throws IOException {
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    return  new SqlSessionFactoryBuilder().build(inputStream);
}

@org.junit.Test
public void demo() throws IOException {
    SqlSessionFactory sessionFactory = getSqlSessionFactory();
    SqlSession openSession = sessionFactory.openSession();
    try {
        UserMapper mapper = openSession.getMapper(UserMapper.class);
        User user = new User(null, "樊", "123456");
        mapper.addUser(user);
        System.out.println(user);
        openSession.commit();  //执行增删改是需手动提交数据
    } finally {
        openSession.close();
    }
}

}

2、测试修改(在Test中try后修改即可)

UserMapper mapper = openSession.getMapper(UserMapper.class);

        User user = new User(null, "樊", "666");
        mapper.updateUser(user);
        openSession.commit();



3、测试查询

List list = openSession.selectList("com.Test.UserMapper.queryAll");

        for (User user:list) {
            System.out.println(user);

4、测试删除

UserMapper mapper = openSession.getMapper(UserMapper.class);

        mapper.deleteUserById(2);
        openSession.commit();  //执行增删改是需手动提交数据

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
敏捷开发 Java 测试技术
探索软件测试中的自动化测试框架
在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的不断进步和软件项目的日益复杂化,传统的手动测试方法已经无法满足高效、准确的测试需求。自动化测试作为一种提高测试效率和质量的有效手段,越来越受到开发者和测试者的青睐。本文将深入探讨自动化测试框架的重要性、常见的自动化测试工具以及如何选择合适的自动化测试框架。
31 10
|
7天前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
31 6
|
7天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
29 4
|
7天前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
20 1
|
13天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
2天前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
18 6
|
13天前
|
测试技术 API Android开发
探索软件测试中的自动化框架选择与实践####
本文深入探讨了软件测试领域内,面对众多自动化测试框架时,如何依据项目特性和团队需求做出明智选择,并分享了实践中的有效策略与技巧。不同于传统摘要的概述方式,本文将直接以一段实践指南的形式,简述在选择自动化测试框架时应考虑的核心要素及推荐路径,旨在为读者提供即时可用的参考。 ####
|
5月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
96 4
|
4月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
218 0
|
4月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
102 2

推荐镜像

更多
下一篇
无影云桌面