mybatis入门--单表的增删改操作

         单表的增加操作

         前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作。首先是在user.xml文件中添加insert的方法。代码如下

       
	
	  insert into user(username,birthday,sex,address) 
          
	  values(#{username},#{birthday},#{sex},#{address})
	

 
         然后就是写个测试方法,代码如下:

// 添加用户信息
	@Test
	publicvoid testInsert() {
		// 数据库会话实例
		SqlSession sqlSession = null;
		try {
			// 创建数据库会话实例sqlSession
			sqlSession = sqlSessionFactory.openSession();
			// 添加用户信息
			User user = new User();
			user.setUsername("张小明");
			user.setAddress("河南郑州");
			user.setSex("1");
			
			sqlSession.insert("test.insertUser", user);
			//提交事务,这里需要手动提交。
			sqlSession.commit();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (sqlSession != null) {
				sqlSession.close();
			}
		}
	}
          注意:这里需要强调的是,由于使用的是jdbc的默认事物,mybatis会自动开启事物,但是不知道什么时候提交,所以需要手动进行事物的提交。
        有比较细心地同学可能注意到了,我们的insert语句中没有写id的值。这就要求我们的数据库是主键自增长的,但是依然有问题:我们添加进去的用户和我们的内存中的用户信息不一致——因为我们的内存中的user是没有主键的。怎么解决这个问题呢?我们需要在user.xml中尽心这些配置:

	
		
		
			select LAST_INSERT_ID()
		
		insert into user (username, birthday, sex, address) values(#{username}, #{birthday}, #{sex}, #{address})
	
         这里面的selectKey可以将数据库自动生成的主键进行返回,然后会将我们的主键自动赋值给我们的user对象,这样的话,数据库和系统内存中的数据就一致了。
          有的同学可能说,如果我不使用主键自增长,我使用uuid怎么办?这里向大家介绍下mybatis如何通过uuid生成主键。其实十分的简单,就是将我们的
select LAST_INSERT_ID()
换成
select uuid()
然后将after修改为before就可以了。代码如下:


select uuid()

insert into user(id,username,birthday,sex,address) 
		 values(#{id},#{username},#{birthday},#{sex},#{address})


注意:这里使用的order是“BEFORE”

         单表的删除操作

          删除用户比较简单,这里就直接把我的代码贴上了

          1.user.xml文件



	delete from user where id=#{id}

          2.测试代码

	@Test
	publicvoidtestDelete() {
		// 数据库会话实例
		SqlSession sqlSession = null;
		try {
			// 创建数据库会话实例sqlSession
			sqlSession = sqlSessionFactory.openSession();
			// 删除用户
			sqlSession.delete("test.deleteUserById",18);
			// 提交事务
			sqlSession.commit();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (sqlSession != null) {
				sqlSession.close();
			}
		}
	}

         单表的修改操作

          修改代码比较简单,直接粘贴源代码了:

         1.user.xml文件

	
		update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
		where id=#{id}
	
          2.测试程序

	@Test
	publicvoidtestUpdate() {
		// 数据库会话实例
		SqlSession sqlSession = null;
		try {
			// 创建数据库会话实例sqlSession
			sqlSession = sqlSessionFactory.openSession();
			// 添加用户信息
			User user = new User();
			user.setId(16);
			user.setUsername("张小明");
			user.setAddress("河南郑州");
			user.setSex("1");
			user.setPrice(1999.9f);
			sqlSession.update("test.updateUser", user);
			// 提交事务
			sqlSession.commit();
 
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (sqlSession != null) {
				sqlSession.close();
			}
		}
	}


你可能感兴趣的:(java,mybatis,mybatis,java,Javaee,框架)