使用MyBatis 实现Dao层,并使用Mapper动态代理

一个小案例

如果我不用id作为主键,而是用UUID作为主键,怎么操作?

第一种方法
    <insert id="insertUser" parameterType="com.bamzhy.bean.User">
        INSERT INTO tt_user VALUES (#{
  id},#{
  username},#{
  password},#{
  email},#{
  age});
    </insert>
    @Test
    public void test3() throws IOException {
        //使用Mybatis的api去实现
        //加载配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //操作数据库的一个载体
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //返回一个对象
        User user = new User();
        //Universally Unique Identifier(UUID 通用唯一识别码)
        user.setId(UUID.randomUUID().toString());
        user.setUsername("haha4");
        user.setPassword("12345");
        user.setEmail("12345@qq.com");
        user.setAge(199191);
        int insert = sqlSession.insert("test.insertUser", user);
        sqlSession.commit();

        System.out.println("insert "+insert);
    }
第二种方法
  • 使用selectKey

    <insert id="insertUser" parameterType="com.bamzhy.bean.User">
        <!--keyProperty对应的是下边{}中的名称,resultType是其格式,order是执行时间在此条sql语句前还是语句后-->
        <selectKey keyProperty="id" resultType="string" order="BEFORE">
            SELECT UUID()
        </selectKey>
        INSERT INTO tt_user VALUES (#{id},#{username},#{password},#{email},#{age});
    </insert>

使用MyBatis ORM实现DAO层

案例2实现之前代码的重构

src下边的mybatis.xml和user.xml跟之前的没有区别(那些不用动)

  • 新增UserDaoImpl.java
    
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值