mybatis通过注解的方式实现简单的sql

1.编写一个实体类

package cn.et.demo02.model;

public class Food {
    private String id;
    private String name;
    private String price;

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }
}

2.编写一个mapper 分别操作增删改查

package cn.et.demo02.mapper;

import cn.et.demo02.model.Food;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface FoodMapper {
    /**
     * 添加
     * @param food
     * @return
     */
    @Insert("insert into food values(#{food.id},#{food.name},#{food.price})")
    int insertFood(@Param("food") Food food);

    /**
     * 删除
     * @param id
     * @return
     */
    @Delete("delete from food where id=#{id}")
    int deleteFood(@Param("id") String id);

    /**
     * 修改
     * @param food
     * @return
     */
    @Update("update food set name = #{food.name}, price = #{food.price} where id=#{food.id}")
    int updateFood(@Param("food") Food food);

    /**
     * 查询所有的
     * @return
     */
    @Select("select * from food")
    List<Food> foodList();

    /**
     * 根据条件查询
     * @param food
     * @return
     */
    @Select("SELECT * FROM food where name LIKE concat('%','${food.name}','%') and price LIKE concat('%','${food.price}','%')")
    List<Food> selectFood(@Param("food") Food food);
}

3.编写 一个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>
    <!-- 是mybatis的核心配置文件  数据库的连接信息(连接池) -->
    <properties resource="jdbc.properties"></properties>

    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${driverClass}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射sql语句的地址-->
    <mappers>
        <!--映射文件方式一,一个一个的配置xml-->
        <mapper resource="mapper/demo01/FoodMapper.xml"/>

        <mapper class="cn.et.demo02.mapper.FoodMapper"/>

        <!-- 映射文件方式二,自动扫描包内的Mapper接口与配置文件 -->
        <!--<package name="mapper.demo01"/>-->
    </mappers>
</configuration>

 

4.编写一个工具类

package cn.et.tools;

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 DBTools {
    //封装一个工厂类
    public static SqlSession getSession() throws IOException {
        //读取连接池的
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //工厂类
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //session操作的是 指向sql语句的一个唯一标示符
        SqlSession session = sqlSessionFactory.openSession();
        return session;
    }
}

 

5.编写一个测试类

package cn.et.demo02.controller;

import cn.et.demo02.mapper.FoodMapper;
import cn.et.demo02.model.Food;
import cn.et.tools.DBTools;
import org.apache.ibatis.session.SqlSession;

import java.io.IOException;
import java.util.List;
import java.util.UUID;

public class FoodTest {
    public static void main(String[] args) throws Exception{
//        List<Food> foods = foodList();      //查询
//        List<Food> foods = selectFood();    //根据条件查询
//        List<Food> foods = deleteFood();    //删除
//        List<Food> foods = insertFood();    //添加
        List<Food> foods = updateFood();    //修改
        for (Food food1 : foods){
            System.out.println(food1.getId()+","+food1.getName()+","+food1.getPrice());
        }
    }

    /**
     * 查询所有数据
     * @return
     * @throws IOException
     */
    public static List<Food> foodList() throws IOException {
        FoodMapper mapper =DBTools.getSession().getMapper(FoodMapper.class);
        List list = mapper.foodList();
        return list;
    }

    /**
     * 根据条件查询
     * @return
     * @throws IOException
     */
    public static List<Food> selectFood() throws IOException {
        FoodMapper mapper =DBTools.getSession().getMapper(FoodMapper.class);
        Food food =new Food();
        food.setPrice("6");
        List<Food> list = mapper.selectFood(food);
        return list;
    }

    /**
     * 删除
     * @return
     * @throws IOException
     */
    public static List deleteFood() throws IOException{
        SqlSession sqlSession = DBTools.getSession();
        FoodMapper mapper = sqlSession.getMapper(FoodMapper.class);
        mapper.deleteFood("8ab9f352-0726-4d44-8423-b93e044b5741");
        sqlSession.commit();
        List<Food> foods = foodList();
        return foods;
    }

    /**
     * 添加
     * @return
     * @throws IOException
     */
    public static List insertFood() throws IOException {
        SqlSession sqlSession = DBTools.getSession();
        FoodMapper mapper = sqlSession.getMapper(FoodMapper.class);
        Food food = new Food();
        food.setId(String.valueOf(UUID.randomUUID()));
        food.setName("2");
        food.setPrice("2");
        mapper.insertFood(food);
        sqlSession.commit();
        List<Food> foods = foodList();
        return foods;
    }

    /**
     * 修改
     * @return
     * @throws IOException
     */
    public static List updateFood() throws IOException{
        SqlSession sqlSession = DBTools.getSession();
        FoodMapper mapper = sqlSession.getMapper(FoodMapper.class);
        Food food = new Food();
        food.setId("fdf9d26a-ff7e-49e8-a47a-405ac6d2703b");
        food.setName("3");
        food.setPrice("3");
        mapper.updateFood(food);
        sqlSession.commit();
        List<Food> list = mapper.foodList();
        return list;
    }
}

 

按照以上操作,就实现了简单的通过注解的方式来实现sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值