mybatis 映射器接口方式 与原生方式


每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例

获取sqlSession实例:

InputStreaminputStream = Resources.getResourceAsStream("config/Configuration.xml");
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    return sqlSessionFactory.openSession();

 
    
一、不使用接口实现增删改查

  Configuration.xml中映射器(mapper)映射User.xml,与其相关联

<mappers>
    <mapper resource="sql/User.xml"/>
</mappers>

  User.xml中映射sql语句:

<mapper namespace="User">
    //增
    <insert id = "insertUser">
        insert  user  values(#{id},#{name},#{password})
    /insert>
                
        //写不写parameterType="bean.User"都可以
                
    //删
    <delete id = "deleteUser">
        delete  from  user  where  id=#{id}
    </delete>
                
    //改
    <update id="updateUser"  parameterType = "bean.User">
        update  user  set  name=#{name},password=#{password}  whereid=#{id}
    </update>
                
        //写不写parameterType="bean.User"都可以
                
    //查
    <select id="selectUser" resultType="bean.User">
        select  id,name,password  from  user
    </select>
                
    <select id="selectOne" resultType="bean.User">
        selectid,name,password from user where id = #{adsa}
    </select>
</mapper>


增删改必须提交(sqlSession.commit();)
如果形参是bean的话,占位符必须与bean中的属性一一对应,xml中不用特意声明形参是bean( parameterType ="bean.User")
如果(查找时)结果集是bean或bean的集合,则必须声明 resultType="bean.User"

            
        
        
    java语句中具体实现

SqlSessionsession=dbUtil.getSession();
session.delete("User.deleteUser",id);
session.commit();
session.close();


二、映射器接口方法实现增删改查

                 
 1、通过xml文件实现


    Configuration.xml中映射器(mapper)映射 接口UserMapper,与其相关联
    

<mappers>
    <mapper  class="mapper.UserMapper"/>
</mappers>


    接口中
    

public interface UserMapper{
        void insert();
}


    UserMapper.xml作为接口的配置文件,内容为:
    

<mapper namespace = "mapper.UserMapper">
    <insert id="insert">
        //具体内容同第一种
    </insert>
</mapper>


    具体实现
    

try(SqlSession sqlSession = new DBUtil().getSqlSession()){
        //1
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //2
        userMapper.insertUser(id,name,password);
        //3提交
        sqlSession.commit();
}


2、通过注释实现


    使用注解的方式写sql语句
    

public interface UserMapper{
    @Insert("insert into user values(#{id}, #{name}, #{password})")
    void insert(Useruser);
}


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值