[MyBatis]简单的CRUD

package com.yiki.Dao;

import com.yiki.Entity.Person;
//MyBatis允许返回值为Long boolean Integer,会自动封装,自行修改即可
public interface PersonMapper {

 public Person getPersonById(Integer id);
 public void addPerson(Person person);
 public void updatePerson(Person person);
 public void deletePerson(Integer id);
}

<?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">

<!--名称空间:写指定接口的全类名
id:唯一标识,这里写接口里绑定的对应的接口方法
resultype:返回值类型(推荐写全类名)==>也可以在typeAliases里写别名,就不需要全类名了
-->
<mapper namespace="com.yiki.Dao.PersonMapper">
    <!-- select * from Person where pid = #{id}-->
    <select id="getPersonById" resultType="com.yiki.Entity.Person">
    select pid,p_name pname,email from Person where pid = #{id}
  </select>

    <insert id="addPerson">
        insert into person(p_name,email)
        values(#{pName},#{email})
    </insert>

    <update id="updatePerson">
        update person
        set p_name=#{pName},email=#{email}
        where pid=#{pId}<!--这里应该写bean类里的,因为没有传参?并且严格区分大小写-->
    </update>

    <delete id="deletePerson">
        delete from person where pid=#{id}
    </delete>
</mapper>

package com.yiki.Test;

import com.yiki.Dao.PersonMapper;
import com.yiki.Dao.PersonMapperAnno;
import com.yiki.Entity.Person;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class Tests {
 private String resource;
 private InputStream inputStream;
 private SqlSessionFactory sqlSessionFactory;
 private SqlSession sqlSession;

 public void start() throws IOException {
  resource = "mybatis.xml";//根据全局配置文件
  inputStream = Resources.getResourceAsStream(resource);
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  sqlSession = sqlSessionFactory.openSession();//不会自动提交
 }
@Test
 public void testAdd() throws IOException {
  start();
  PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
  mapper.addPerson(new Person(null,"tiffany","slkjag"));
  sqlSession.commit();
  sqlSession.close();
 }
@Test
 public void testUpdate() throws IOException {
  start();
  PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
  mapper.updatePerson(new Person(1,"yiki","yikisssss"));
  sqlSession.commit();
  sqlSession.close();
 }

 @Test
 public void testDelete() throws IOException {
  start();
  PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
  mapper.deletePerson(1);
  sqlSession.commit();
  sqlSession.close();
 }

 @Test
 public void select01() throws IOException {
  start();
  PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
  Person person = mapper.getPersonById(1);
  System.out.println(person);
  sqlSession.close();

 }

 @Test
 public void selectAnno() throws IOException {
  start();
  PersonMapperAnno annomapper = sqlSession.getMapper(PersonMapperAnno.class);

  System.out.println(annomapper.getPersonById(1));
  sqlSession.close();

 }


 public static void main(String[] args) throws IOException {

  String resource = "mybatis.xml";//根据全局配置文件
  InputStream inputStream = Resources.getResourceAsStream(resource);
  SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

  SqlSession sqlSession = sqlSessionFactory.openSession();

  //第一个参数:写唯一标识,最好是namespace+id
  //第二个参数:写sql要传入的参数
  Person person = sqlSession.selectOne("com.yiki.Entity.PersonMapper.selectPerson", 1);

  System.out.println(person);

  sqlSession.close();
 }
}

猜你喜欢

转载自blog.csdn.net/qq_38277033/article/details/80862328