Mybatis详细的增删改过程

## 1.首先MyBatis的介绍

MyBatis 本是apache的一个[开源项目](https://baike.baidu.com/item/开源项目/3406069)iBatis, 2010年这个[项目](https://baike.baidu.com/item/项目/477803)由apache software foundation 迁移到了[google code](https://baike.baidu.com/item/google code/2346604),并且改名为MyBatis 。2013年11月迁移到[Github](https://baike.baidu.com/item/Github/10145341)。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的[持久层](https://baike.baidu.com/item/持久层/3584971)框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

## 2.MyBatis的增删改查

### (1)建moven文件项目

 

 

 

 

## (2)导入依赖到pom.xml中,module和项目中都要导入

 

```java
<dependencies>
        <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.16</version>
    </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>

    </dependencies>
```

## (3)连接数据库的配置文件

```xml
<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/jdbc_date?userSSL=true&amp;                userUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8"/>                <property name="username" value="root"/>                <property name="password" value="123456"/>            </dataSource>       
    </environment>   
</environments>   
<mappers>   
    <mapper resource="com/jsh/dao/UserDao1.xml"></mapper>    </mappers></configuration>
```

## (4)测试是否连接数据库

 

 

 

然后点击apply

成功连接后会显示数据库数据

 

## (5)写与数据库对应表的构造方法

```java
package com.jsh.dao;
public class User {    int id;  
                   String status;   
                   String name;   
                   String money;  
  public String getMoney() {      
      return money;    }   
         public void setMoney(String money) {        this.money = money;    }   
                   public String getName() {        return name;    }   
                   public void setName(String name) {        this.name = name;    }   
                   public String getStatus() {        return status;    }   
                 public void setStatus(String status) {        this.status = status;    }   
                 public int getId() {        return id;    }   
               public void setId(int id) {        this.id = id;    }   
            public User(){    }    
            public User(int id,String status,String name,String money){        this.id=id;        this.money=money;        this.name=name;        this.status=status;    }  
              @Override    public String toString() {        return "User{" +                "id=" + id +                ", status='" + status + '\'' +                ", name='" + name + '\'' +                ", money='" + money + '\'' +                '}';    }}
```

## (6)写一个工具类MybatisUtil

```java
package com.jsh.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;public class MybatisUtil {    private static SqlSessionFactory sqlSessionFactory;    static {        try {            //使用mybatis第一步:获取sqlSessionFactory对象            String resource = "Mybaties_01.xml";            InputStream inputStream = Resources.getResourceAsStream(resource);            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        } catch (IOException e) {            e.printStackTrace();        }    }    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。    // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句    public static SqlSession getSqlSession(){        return sqlSessionFactory.openSession();    }}
```

## (7)写一个userDao的接口,接口中对应方法,再新建一个xml文件

```java
package com.jsh.dao;import java.util.List;public interface UserDao {    //查询所有信息    List<User> getUserList();    //根据ID查询   User getByIdUserList(int id);   //add一个用户    int addUserList(User user);   //修改数据    int updateUserList(User user);    //删除数据根据id    int deleteUserList(int id);}
```

xml文件

```xml
<?xml version="1.0" encoding="UTF8" ?><!DOCTYPE mapper        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace绑定一个对应的mapper接口--><mapper namespace="com.jsh.dao.UserDao">    <!--id方法名-->    <select id="getUserList" resultType="com.jsh.dao.User">        select * from jdbc_date.user    </select>    <select id="getByIdUserList" resultType="com.jsh.dao.User" parameterType="int">        select * from jdbc_date.user where id= #{id}    </select>    <insert id="addUserList" parameterType="com.jsh.dao.User">        insert into jdbc_date.user (id, status, money, name) VALUES (#{id},#{status},#{money},#{name})    </insert>    <delete id="deleteUserList" parameterType="com.jsh.dao.User">        delete from jdbc_date.user where id=#{id}    </delete>    <update id="updateUserList" parameterType="com.jsh.dao.User">        update jdbc_date.user set status=#{status},money=#{money},name=#{name} where id=#{id}    </update></mapper>
```

## (8)增删改查的实现代码

1. package com.jsh.dao;import com.jsh.utils.MybatisUtil;import org.apache.ibatis.session.SqlSession;

   import org.junit.Test;import java.util.List;

   public class UserDaoTest{

   //打印表的内容

   @Test   public void Test(){     
       // 获得sqlsession对象      
       SqlSession sqlSession = MybatisUtil.getSqlSession();   
       // 1.执行 getmapper   
       UserDao userDao = sqlSession.getMapper(UserDao.class);       List<User> userList = userDao.getUserList();       // method 2//        List<User> userList = sqlSession.selectList("com.hou.dao.UserDao.getUserList");       for(User user: userList){           System.out.println(user);       }       //关闭       sqlSession.close();   }  

   //通过id查询

    @Test    public void getByIdUserList(){       SqlSession s=MybatisUtil.getSqlSession();       UserDao userDao = s.getMapper(UserDao.class);    User f= userDao.getByIdUserList(1);       System.out.println(f);       s.close();   } 

   //增加的代码块

2.   @Test   public void addUserList(){       SqlSession sqlSession=MybatisUtil.getSqlSession();       UserDao userDao=sqlSession.getMapper(UserDao.class);       int res=userDao.addUserList(new User(1,"冻结","小明","14"));       if(res>0){           System.out.println("插入成功");       }       sqlSession.commit();       sqlSession.close();   }

   //删除

3.    @Test   public void deleteUserList(){       SqlSession sqlSession=MybatisUtil.getSqlSession();       UserDao userDao=sqlSession.getMapper(UserDao.class);       int res=userDao.deleteUserList(1);       if (res>0){           System.out.println("删除成功");       }       sqlSession.commit();       sqlSession.close();   }  

   //改

  1. 4.  @Test    public void updateUserList(){       SqlSession sqlSession=MybatisUtil.getSqlSession();       UserDao userDao=sqlSession.getMapper(UserDao.class);       int res=userDao.updateUserList(new User(2,"解除","张三","15"));       if (res>0){           System.out.println("修改成功");       }       sqlSession.commit();       sqlSession.close();   }}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值