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