Mybatis注解开发

注解开发

import com.example.pojo.User;
import org.apache.ibatis.annotations.Select;


public interface UserDao {

    @Select("select * from mybatis.user where id = #{id}")
    User getUserById(int id);
}

将原来的dao层的接口加上对应的注解

<mappers>
        <mapper class="com.example.dao.UserDao" />
    </mappers>

mybatis的配置的xml里面去设置对应得mapper路径

@Test
public void getUserById() {
    // 获取sqlSession对象
    SqlSession sqlSession = MybatisUtils.getSqlSessionFactory();

    // 获取mapper对象
    UserDao mapper = sqlSession.getMapper(UserDao.class);


    User user = mapper.getUserById(1);

    System.out.println(user);

    sqlSession.close();
}

测试类

** 使用注解来映射语句会使代码更加简单,但它存在的局限,如果想完成复杂的功能,还是使用xml来配置 **

注解完成CRUD

public interface UserDao {

    @Select("select * from mybatis.user where id = #{id}")
    User getUserById(@Param("id") int userId);

    @Insert("insert into mybatis.user (`id`, `name`) values (#{id}, #{name})")
    int addUser(User user);

    @Update("update mybatis.user set `name` = #{name} where id = #{id}")
    int updateUserById(User user);

    @Delete("delete from mybatis.user where id = #{id}")
    int deleteUserById(@Param("id") int userId);
}

自动提交事务

在创建工具类的时候实现自动提交事务

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 MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory;

    static {

        try {
            // 配置文件的路径
            String resource = "mybatis-config.xml";
            InputStream resourceAsStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static SqlSession getSqlSessionFactory() {
        return sqlSessionFactory.openSession(true); // 设置参数为true即可
    }
}
posted @ 2020-09-15 19:05  Ivy丶  阅读(121)  评论(0)    收藏  举报