MyBatis增删改查
mybatis查询
单个数据进行查询
@Test
public void testGetUserById(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.getUserById(41);
System.out.println(user);
}
注意:这里要先在接口UserDao中定义一个含有一个参数的抽象方法 User getUserById(Integer id);参数的类型最好用Integer类型传ID
同时应在UserDao对应的UserDao.xml文件中写上相关的sql代码
<select id="getUserById" parameterType="java.lang.Integer" resultType="com.by.pojo.User">
select *
from user
where id = #{id}
</select>
注意:这里的id值要和方法名保持一致,parameterType的值为传入参数的类型,resultType这里要写完整的pojo类路径
!(https://img-blog.csdnimg.cn/direct/ff1d07791d6747d48f1f5270e6f59861.png)
多个参数查询
参数较少的情况建议用注解
public void testGetUser2(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.getUser2(43, "俞莲舟");
System.out.println(user);
}
对应在接口中的方法应为
User getUser2(@Param("id") Integer id, @Param("username") String username);
在UserDao.xml中应为
<select id="getUser2" resultType="com.by.pojo.User">
select *
from user
where id = #{id}
and username = #{username}
</select>
参数叫多的情况下使用对象
@Test
public void testGetUser3(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User userParam = new User();
userParam.setId(45);
userParam.setUsername("张翠山");
User user = userDao.getUser3(userParam);
System.out.println(user);
}
对应UserDao接口中
User getUser3(User user);
在UserDao.xml中为
<select id="getUser3" parameterType="com.by.pojo.User" resultType="com.by.pojo.User">
select *
from user
where id = #{id}
and username = #{username}
</select>
mybatis修改
@Test
public void testUpdateUserById(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = new User();
user.setUsername("张三丰");
user.setPassword("1111");
user.setBirthday(new Date());
user.setSex("男");
user.setAddress("高老庄");
user.setId(41);
userDao.updateByUserId(user);
sqlSession.commit();
}
在UserDao接口中加入对应方法
在UserDao.xml中加入
<update id="updateByUserId" parameterType="com.by.pojo.User">
update user
set username= #{username},
password=#{password},
birthday=#{birthday},
sex=#{sex},
address=#{address}
where id = #{id}
</update>
mybatis增加
@Test
public void testAddUser(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = new User();
user.setUsername("张三封");
user.setPassword("1111");
user.setBirthday(new Date());
user.setSex("男");
user.setAddress("高老庄");
userDao.addUser(user);
sqlSession.commit();
}
在xml中应加入
<insert id="addUser" parameterType="com.by.pojo.User">
insert into user(username, password, birthday, sex, address)
values (#{username}, #{password}, #{birthday}, #{sex}, #{address})
</insert>
mybitas删除
public void testDeleteUserById(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
userDao.deleteByUserId(49);
sqlSession.commit();
}
对应xml文件
<delete id="deleteByUserId" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete>