Mybatis 基础入门 -史上最简单的示例,从创建到基本的CRUD

举报
ksh1998 发表于 2021/12/26 00:02:26 2021/12/26
1.9k+ 0 0
【摘要】 目录 简介: 项目创建:      创建:      导入maven依赖       创建mybatis工具类         创建配置文件       &nbsp...

目录

简介:

项目创建:

     创建:

     导入maven依赖

      创建mybatis工具类

        创建配置文件

                 新建工具类

基本使用:

 查询:

 插入:

修改:

删除:


简介:

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

项目创建:

     创建:

             

          

创建成功

     导入maven依赖 

          


      <?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">
          <parent>
              <artifactId>TestMavenv</artifactId>
              <groupId>org.example</groupId>
              <version>1.0-SNAPSHOT</version>
          </parent>
          <modelVersion>4.0.0</modelVersion>
          <artifactId>mybatis-Study</artifactId>
         <!--导入依赖-->
          <dependencies>
            <!--mysql驱动-->
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.46</version>
              </dependency>
            <!--mybatis-->
              <dependency>
                  <groupId>org.mybatis</groupId>
                  <artifactId>mybatis</artifactId>
                  <version>3.5.2</version>
              </dependency>
            <!--junit-->
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.11</version>
              </dependency>
          </dependencies>
      <!--配置文件过滤设置-->
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                      <includes>
                          <include>**/*.properties</include>
       <include>**/*.xml</include>
                      </includes>
                      <filtering>true</filtering>
                  </resource>
                  <resource>
                      <directory>src/main/java</directory>
                      <includes>
                          <include>**/*.properties</include>
       <include>**/*.xml</include>
                      </includes>
                      <filtering>true</filtering>
                  </resource>
              </resources>
          </build>
      </project>
  
 

      创建mybatis工具类

         创建配置文件

                        

                      配置文件放到resource的文件夹里


      <?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.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                      <property name="username" value="root"/>
                      <property name="password" value="root"/>
                  </dataSource>
              </environment>
          </environments>
      </configuration>
  
 

      

   新建工具类

 项目结构


      package com.kuang.utils;
      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;
      /**
       * @program: TestMavenv
       * @description: mybatis工具类
       * @author: 康世行
       * @create: 2021-03-27 11:35
       * SqlSessionFactory
       */
      public class MybatisUtils {
        static SqlSessionFactory sqlSessionFactory=null;
         static {
             try {
                 //使用mybatis第一步;获取sqlsessionFactory对象,用于获取SQL执行对象。
                 String resource = "mybatis-config.xml";
                 InputStream inputStream = Resources.getResourceAsStream(resource);
                    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
              }catch (IOException e){
                  e.printStackTrace();
              }
          }
         /**
       *@Description: 执行sql的对象
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         public static SqlSession getsqlsessiton(){
             SqlSession sqlSession = sqlSessionFactory.openSession();//获取执行SQL的对象
             return sqlSession;
          }
      }
  
 

基本使用:

            1.新建实体(对应你自己使用的数据库里的表)

                


      package com.kuang.pojo;
      /**
       * @program: TestMavenv
       * @description: 实体
       * @author: 康世行
       * @create: 2021-03-27 11:49
       */
      public class User {
         private  int id;
         private String name;
         private  String pwd;
         public User(int id, String name, String pwd) {
             this.id = id;
             this.name = name;
             this.pwd = pwd;
          }
         public User() {
          }
         public int getId() {
             return id;
          }
         public void setId(int id) {
             this.id = id;
          }
         public String getName() {
             return name;
          }
         public void setName(String name) {
             this.name = name;
          }
         public String getPwd() {
             return pwd;
          }
         public void setPwd(String pwd) {
             this.pwd = pwd;
          }
         @Override
         public String toString() {
             return "User{" +
                     "id=" + id +
                     ", name='" + name + '\'' +
                     ", pwd='" + pwd + '\'' +
                     '}';
          }
      }
  
 

            2.新建DAO层接口

         


      package com.kuang.dao;
      import com.kuang.pojo.User;
      import java.util.List;
      /**
       * @program: TestMavenv
       * @description: DAo接口
       * @author: 康世行
       * @create: 2021-03-27 12:50
       */
      public interface UserDAo {
         /**
       *@Description: 获取用户信息
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
          List<User> getUserList();
         /**
       *@Description: 插入用户信息
       *@Param: id,name ,pwd
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         int insertInfo(User user);
         /**
       *@Description: 修改用户信息
       *@Param: user
       *@return: 1或0
       *@Author: 康世行
       *@date: 2021-03-27
       */
         int updateInfo(User user);
         /**
       *@Description: 删除指定用户
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         int deletInfo(int id);
      }
  
 

 查询:

                   新建UserMappr.xml文件,用于实现UserDAo接口,相当于实现类。

             


      <?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=绑定一个对应的DAO/Mapper接口-->
      <mapper namespace="com.kuang.dao.UserDAo">
          <!--查询 id="接口里的方法名称 " resultype ="返回值类型"-->
          <select id="getUserList" resultType="com.kuang.pojo.User">
              select * from User
          </select>
          <!--插入 id="接口里的方法名称 " parameterType="参数类型" -->
          <insert id="insertInfo" parameterType="com.kuang.pojo.User">
              insert into  mybatis.User(id,name ,pwd) values (#{id},#{name},#{pwd})
          </insert>
          <!--修改-->
          <update id="updateInfo" parameterType="com.kuang.pojo.User">
              update  mybatis.User set name=#{name} where id=#{id} and pwd=#{pwd}
          </update>
          <!--删除-->
          <delete id="deletInfo" parameterType="int">
              delete from mybatis.User where id = #{id}
          </delete>
      </mapper>
  
 

       回到mybatis-config.xml里面完善下配置文件,注册mapper(添加红框里的内容)

       resourec里的地址根据你自己的mappr文件的地址填写即可

       

            调用测试方法:

           


      /**
       *@Description: 查询
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         @Test
         public void getUserIfo(){
             //第一步获取sqlsession对象
             SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
             //第二步执行(通过class文件获取UserDAo对象) 第一种方式
             UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
              List<User> userList = mapper.getUserList();
             //遍历数组
             for (User user : userList) {
                  System.out.println(user);
              }
             //释放资源
              getsqlsessiton.close();
          }
  
 

             结果:

             

 插入:

             调用测试方法:


      /**
       *@Description: 插入一个用户
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
      @Test
         public void insertIfo(){
             //第一步获取sqlsession对象
             SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
             //第二步获取对象
             UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
             int i = mapper.insertInfo(new User(19980, "ksh", "aaa"));
             if(i>0){
                  System.out.println(i);
                  System.out.println("信息插入成功");
                 //提交事务
                  getsqlsessiton.commit();
              }else {
                  System.out.println("信息插入失败");
              }
              getsqlsessiton.close();
          }
  
 

 这里需要注意下,事务。getsqlsessiton.commit();提交事务,如果落了这步数据就不会插入到数据库。  (增删改都需要这步)         

 结果:

修改:      

           调用测试方法:


       /**
       *@Description: 修改用户信息
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         @Test
         public void updateInfo(){
             //第一步获取 sqlSession对象
             SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
             //第二步获取接口的对象
             UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
             //执行方法
             int i = mapper.updateInfo(new User(12, "aaa", "a"));
             if(i>0){
                  System.out.println("信息修改成功");
                 //提交事务
                  getsqlsessiton.commit();
              }else {
                  System.out.println("信息修改失败");
              }
          }
  
 

            结果:

               修改前:

               

               修改后:

          

          

删除:

         调用测试方法:

    


      /**
       *@Description: 删除用户信息
       *@Param:
       *@return:
       *@Author: 康世行
       *@date: 2021-03-27
       */
         @Test
         public  void  deleteInfo(){
             //第一步获取 sqlSession对象
             SqlSession getsqlsessiton = MybatisUtils.getsqlsessiton();
             //第二步获取接口的对象
             UserDAo mapper = getsqlsessiton.getMapper(UserDAo.class);
             int i = mapper.deletInfo(12);
             if(i>0){
                  System.out.println("用户删除成功");
                 //提交事务
                  getsqlsessiton.commit();
              }
          }
  
 

           结果:

          

       删除之后的表内用户数据(id= 1998的用户已经被删除了)

参考手册:https://mybatis.org/mybatis-3/zh/getting-started.html

文章来源: kangshihang.blog.csdn.net,作者:康世行,版权归原作者所有,如需转载,请联系作者。

原文链接:kangshihang.blog.csdn.net/article/details/115266747

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。