Mybatis Mapper代理

1.mybatis等配置文件,实体类和原生一样

2.在mapper包下新建接口类my2,方法即为操作数据库方法

package mapper;
import entity.User;
import java.util.List;

public interface my2 {
    public int insert(User u);
    public int update(User u);
    public int deleteById(int id);
    public List<User> findAll();
    public User findById(int id);

}

3.在mapper包下新建my2Mapper.xml

注意事项:namespace要写接口类的路径

<?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">
<!--        写接口类的路径   -->
<mapper namespace="mapper.my2">

    <insert id="insert" parameterType="entity.User">
        insert into login(userid,userName,userPwd)
        values (#{userid},#{userName},#{userPwd})
    </insert>

    <select id="findAll" resultType="entity.User">
        select *
        from login
    </select>

    <select id="findById" parameterType="int" resultType="entity.User">
        select *
        from login
        where userid=#{userid}
    </select>

    <update id="update" parameterType="entity.User">
        update login
        set userName=#{userName},userPwd=#{userPwd}
        where userid=#{userid}
    </update>

    <delete id="deleteById" parameterType="int">
        delete
        from login
        where userid=#{userid}
    </delete>

</mapper>

4.在config.xml文件下注册my2Mapper.xml

5.测试

public void fun2(){
        /**
         * 使用Mapper代理
         *      1.定义接口
         *      2.编写与接口对于的Mapper.xml 定义接口对应的sql语句
         *
         */
        InputStream is= App.class.getClassLoader().getResourceAsStream("config.xml");
        SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf=ssfb.build(is);
        SqlSession sqlSession=ssf.openSession();
        //获取实现接口的代理对象
        my2 m=sqlSession.getMapper(my2.class);

//        List<User> list=m.findAll();
//        for (User u:list) {
//            System.out.println(u.getUserName());
//        }


        User user1=m.findById(5);
        System.out.println(user1.getUserName());




        sqlSession.close();
    }
posted @   lwx_R  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示