MyBatis的纯注解方式实现crud功能

》#千锋逆战#
相关依赖和配置参照https://www.jianshu.com/writer#/notebooks/42723625/notes/64341309

在配置mybatis.xml时一定要指定配置文件

<!--指定映射配置文件位置,映射配置文件指的是每一个dao独立的配置文件-->
    <mappers>
    <!--这里应是class而不是resource-->
      <mapper class="com.qfedu.dao.IUserDao2"/>
    </mappers>

SessionUtils.java

package com.qfedu.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;

public class SessionUtils {

    private static SqlSessionFactory factory=null;
    private static SqlSession session=null;

    static {
        try {
            factory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取Session对象
     * @return
     */
    public static SqlSession getSession(){
        session=factory.openSession(true);
        return session;
    }

    /**
     * 关闭Session
     * @param session
     */
    public static void closeSession(SqlSession session){
        session.close();
    }
}

IUserDao.java

package com.qfedu.dao;

import com.qfedu.pojo.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface IUserDao2 {
    @Select("select * from user")
    List<User> findAllUser();
    @Select("select * from user where id=#{id}")
    User getUserById(int id);
    @Insert("insert into user values (null ,#{username},#{password},#{age},#{sex},#{address})")
    int saveUser(User u);
    @Update("update user set username=#{username},password=#{password},age=#{age},sex=#{sex},address=#{address} where id=9")
    int updateUser(User u);
    @Delete("delete from user where id=#{id}")
    int deleteUser(int id);
}

Test.java

package com.qfedu.test;

import com.qfedu.dao.IUserDao2;
import com.qfedu.pojo.User;
import com.qfedu.utils.SessionUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

public class TestUser3 {
    private static SqlSession session=null;
    @Before
    public void setUp(){
         session = SessionUtils.getSession();
    }
    @After
    public void tearDown(){
        SessionUtils.closeSession(session);
    }
    @Test
    public void findAll(){
        IUserDao2 mapper = session.getMapper(IUserDao2.class);
        List<User> allUser = mapper.findAllUser();
        for (User user : allUser) {
            System.out.println(user);
        }
    }
    @Test
    public void getUserById(){
        IUserDao2 mapper = session.getMapper(IUserDao2.class);
        User userById = mapper.getUserById(9);
        System.out.println(userById);
    }
    @Test
    public void saveUser(){
        IUserDao2 mapper = session.getMapper(IUserDao2.class);
        User u = new User();
        u.setSex("男");
        //u.setBirthday(Timestamp.valueOf(simpleDate.format(nowdate)));
        u.setAddress("江苏苏州");
        u.setUsername("李一一");
        u.setAge(20);
        u.setPassword("123456");
        int user = mapper.saveUser(u);
        System.out.println(user);
    }
    @Test
    public void updateUser(){
        IUserDao2 mapper = session.getMapper(IUserDao2.class);
        User u = new User();
        u.setSex("女");
        //u.setBirthday(Timestamp.valueOf(simpleDate.format(nowdate)));
        u.setAddress("江苏太仓");
        u.setUsername("李小小");
        u.setAge(19);
        u.setPassword("1234567");
        int user = mapper.updateUser(u);
        System.out.println(user);
    }
    @Test
    public void deleteUser(){
        IUserDao2 mapper = session.getMapper(IUserDao2.class);
        int result = mapper.deleteUser(4);
        System.out.println(result);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容