idea简单实现mybatis(详解),使用maven项目

简介: idea简单实现mybatis(详解),使用maven项目

使用maven项目,前面有详解如何配置maven

mybatis,主要就是在mvc中的dao层,用于对数据库进行操作,接下来可以分成一条线,相当于工厂模式一样掌握这个mybatis

1,目录

2,编写pojo中的实体类
package com.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
//全参构造
@AllArgsConstructor
//无参构造
@NoArgsConstructor
public class Student {
    private String name;
    private String password;
    private Integer age;
    private String address;
}
3,编写数据库,根据实体类的参数以及数据类型编写数据库,这边使用外面的图形化界面编写的,使用的是mysql数据库,在哪编写都一样,能连上就行

4,编写操作实体类的接口,即dao中的StudentI类
package com.dao;
import com.pojo.Student;
import java.util.List;
public interface StudentI {
  //插入数据
    public int insert(Student stu);
    //根据名字删除
    public int delete(String name);
    //根据学生的address更新
    public int update(Student student);
    //查询所有学生的信息
    public List<Student> select();
}
5,编写实现接口的xml文件,即dao中的StudentI.xml文件

注意:一个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">
<mapper namespace="com.dao.StudentI">
    <insert id="insert" parameterType="Student">
        insert into student values (#{name},#{password},#{age},#{address})
    </insert>
    <delete id="delete">
        delete from student where name = #{name}
    </delete>
    <update id="update" parameterType="Student">
        update student name = #{name},password=#{password},age=#{age} where address=#{address}
    </update>
    <select id="select" resultType="Student">
        select * from student
    </select>
</mapper>
6,mybatis的可信配置文件,相当于一个工厂,需要将前面的实现接口的xml文件全部装在这个工厂中,并在这个工厂中还需要配置sql连接数据库的参数,以的形式将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">
<configuration>
    <!--日志-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!--别名-->
    <typeAliases>
        <typeAlias type="com.pojo.Student" alias="Student"></typeAlias>
    </typeAliases>
    <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/ssm?serverTimezone=GMT%2B8"/>
                <property name="username" value="root"/>
                <property name="password" value="zhs03171812"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/dao/StudentI.xml"/>
    </mappers>
</configuration>
7,在将所有的文件装入到工厂中,我们需要去去,相当于spring一样,由容器将bean创建好,有外部调用;这里也是,我们需要将工厂中的sqlSessionFactory工厂中的sqlSession的资源加载出。
因此可以创建一个工具类,将资源sqlsession资源加载出
package com.tool;
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.InputStream;
public class UtilGetSqlSession {
    private static SqlSessionFactory sqlsessionFactory;
    static {
        try{
          //获取流的路径
            String resources = "mybatis-config.xml";
            //通过Resources加载资源,并以流的方式输出
            InputStream resourceAsStream = Resources.getResourceAsStream(resources);
            sqlsessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        }catch(Exception exeption){
            exeption.printStackTrace();
        }
    }
    public static SqlSession getSqlSession(){
      //由工厂打开就能得到sqlSession的对象
        SqlSession sqlSession = sqlsessionFactory.openSession();
        return sqlSession;
    }
}
8,在test测试的根目录下创建测试类
对每一个增删改查都进行了测试,使用了多个juint
import com.dao.StudentI;
import com.pojo.Student;
import com.tool.UtilGetSqlSession;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class Test {
    @org.junit.Test
    public void insert(){
        SqlSession sqlsession = UtilGetSqlSession.getSqlSession();
        StudentI mapper = sqlsession.getMapper(StudentI.class);
        mapper.insert(new Student("qwq","123456",20,"广东"));
        System.out.println("数据插入成功");
        sqlsession.commit();
        sqlsession.close();
    }
    @org.junit.Test
    public void delete(){
        SqlSession sqlsession = UtilGetSqlSession.getSqlSession();
        StudentI mapper = sqlsession.getMapper(StudentI.class);
        //根据名字删除信息
        mapper.delete("qaq");
        System.out.println("数据删除成功");
        sqlsession.commit();
        sqlsession.close();
    }
    @org.junit.Test
    public void update(){
        SqlSession sqlsession = UtilGetSqlSession.getSqlSession();
        StudentI mapper = sqlsession.getMapper(StudentI.class);
        //根据地质更新数据库
        mapper.update(new Student("qqq","123123",21,"江西"));
        sqlsession.commit();
        sqlsession.close();
    }
    @org.junit.Test
    public void select(){
        SqlSession sqlsession = UtilGetSqlSession.getSqlSession();
        StudentI mapper = sqlsession.getMapper(StudentI.class);
        List<Student> select = mapper.select();
        for (Student stu : select) {
            System.out.println(stu);
        }
        sqlsession.commit();
        sqlsession.close();
    }
}
9,验证

在每一个测试完之后,可以去表中刷新查看

在使用mybatis时,不太推荐使用注解!

相关文章
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
61 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
179 8
|
2月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
161 3
|
3月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
223 1
Maven——创建 Spring Boot项目
|
3月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
62 1
如何使用 maven 创建一个 Spring Boot项目
|
3月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
134 1
|
3月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
206 2
|
搜索推荐 Java 应用服务中间件
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
当涉及到软件开发和项目管理时,使用一个可靠的构建工具是非常重要的。Maven是一个广泛使用的构建工具,它为Java项目提供了一种简化的构建过程和依赖管理。 在本文中,我们将探讨如何部署Maven并开始使用它来构建您的项目。我们将介绍所需的步骤,并向您提供一些有用的提示和建议。
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
|
8月前
|
Java Maven
Maven【5】在IDEA环境中配置和使用Maven
Maven【5】在IDEA环境中配置和使用Maven
182 1
|
存储 缓存 Java
Maven超细致史上最全Maven下载安装配置教学(2022更新...全版本)建议收藏...赠送IDEA配置Maven教程
Maven超细致史上最全Maven下载安装配置教学(2022更新...全版本)建议收藏...赠送IDEA配置Maven教程
3689 0
Maven超细致史上最全Maven下载安装配置教学(2022更新...全版本)建议收藏...赠送IDEA配置Maven教程