Mybatis基本操作

模糊查询

项目代码根据入门案例修改,这里只填写修改的内容

**
**

修改映射文件的查询:

<select id="findUserByName" parameterType="String" resultType="com.szl.model.User">
        SELECT * from user where username like '%${value}%'
    </select>

测试类中修改的语句:

   /*
    * 查询多条记录
    * */
   @Test
    public void test1() throws IOException {

       *  d)	调用SqlSession的操作数据库方法。
       User user=session.selectOne("findUserById",10);
      System.out.println(user);
        List<User> users=session.selectList("findUserByName","张");
      System.out.println(users);

        
  }

插入

映射文件:

  <!--插入数据-->
    <!--这里的占位写的是模型的属性-->
    <insert id="insertUser" parameterType="com.szl.model.User">
        insert  into user (username,sex,birthday,address)
        values (#{username},#{sex},#{birthday},#{address});
    </insert>

测试类:

public class Demo2 {
    SqlSession session;
   @Before
    public void before() throws IOException {
       System.out.println("before......获取session");
//      *  a)	读取配置文件;
       InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
//        *  b)	通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂。
       SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(is);
//        *  c)	通过SqlSessionFactory创建SqlSession。
     session=factory.openSession();
    }
    @After
    public void after(){
        System.out.println("after......关闭session");
//        *  e)	关闭SqlSession。
        session.close();
    }

    /*
    * 插入数据
    * */
    @Test
    public void test2() throws IOException {
        User user=new User("abc","1",new Date(),"广州");
      session.insert("insertUser",user);
      session.commit();//提交事务,如果执行操作数据库没有变化就执行这个方法
    }
}

删除

映射文件:

 <!--删除数据-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{ids};
    </delete>

测试类:

  /*
    * 删除用户
    * */
    @Test
    public void Test3() throws IOException{
        int i=session.delete("deleteUser",16);
        session.commit();
        System.out.println("受影响的行数:"+i);
    }

修改用户:

映射文件:

<!--修改数据-->
    <update id="updateUser" parameterType="com.szl.model.User">
        update  user set address=#{address},sex=#{sex}
        where  id=#{id};
    </update>

测试:

 /*
    * 修改用户
    * */
    @Test
   public void test4() throws IOException {
        User user=new User();
        user.setId(10);
        user.setSex("女");
        user.setAddress("武汉");

         int i= session.update("updateUser",user);
      session.commit();
        System.out.println("收影响的行数:"+i);
    }

插入后返回主键

<insert id="insertUser" parameterType="com.gyf.domain.User">
		<!-- 
			[selectKey标签]:通过select查询来生成主键
			[keyProperty]:指定存放生成主键的属性
			[resultType]:生成主键所对应的Java类型
			[order]:指定该查询主键SQL语句的执行顺序,相对于insert语句
			[last_insert_id]:MySQL的函数,要配合insert语句一起使用 -->
		<selectKey keyProperty="id" resultType="int" order="AFTER">
			SELECT LAST_INSERT_ID()
		</selectKey>
		<!-- 如果主键的值是通过MySQL自增机制生成的,那么我们此处不需要再显示的给ID赋值 -->
		INSERT INTO USER (username,sex,birthday,address) 
		VALUES(#{username},#{sex},#{birthday},#{address})
</insert>

映射文件

 <!--插入返回id-->
    <insert id="insertUser2" parameterType="com.szl.model.User">
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select last_insert_id()
        </selectKey>
        insert  into user (username,sex,birthday,address)
        values (#{username},#{sex},#{birthday},#{address});
    </insert>

测试类

//* 插入数据后,往模型中设置id
    //*
    @Test
    public void test2() throws IOException {
        User user=new User("AAAAA","1",new Date(),"广州");
         int i= session.insert("insertUser2",user);
       session.commit();
        System.out.println("收影响的行数:"+i);
        System.out.println("用户id"+user.getId());
    }

主键返回自增UUID

在这里插入图片描述

注:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值