mybatis CRUD操作
select
select
标签是mybatis
最常用的标签之一.select
语句有很多属性可以详细的配置每一天sql
语句.id
- 命名空间唯一的标识.
- 接口中的方法名与映射文件的
sql
语句ID
对应
parameterType
- 传入
sql
语句的参数类型.
- 传入
resultType
sql
语句的返回值类型.
需求:根据id查询用户
在接口文件中添加对用的虚拟方法:
public interface UserMapper {
//查询全部用户
List<User> selectUser();
//根据id查询用户
User selectUserById(int id);
}
在配置文件中配置sql
语句:
<select id="selectUserById" resultType="com.kuang.pojo.User">
select * from user where id = #{id}
</select>
测试类中测试:
@Test
public void tsetSelectUserById() {
SqlSession session = MybatisUtils.getSession(); //获取SqlSession连接
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUserById(1);
System.out.println(user);
session.close();
}
需求姓名和密码来查询
在接口方法的参数前添加@param
sql
语句编写的时候直接取@param
中设置的值即可,不需要单独设置参数类型.
//通过密码和名字查询用户
User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
/*
<select id="selectUserByNP" resultType="com.kuang.pojo.User">
select * from user where name = #{username} and pwd = #{pwd}
</select>
*/
insert
需求:添加一个用户
//添加一个用户
int addUser(User user);
在userMapper.xml
文件中添加insert
语句
<insert id="addUser" parameterType="com.kuang.pojo.User">
insert into user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
测试:
@Test
public void testAddUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = new User(5,"王五","zxcvbn");
int i = mapper.addUser(user);
System.out.println(i);
session.commit(); //提交事务,重点!不写的话不会提交到数据库
session.close();
}
注意点:增删改需要提交事务
备注:文章的大多数的内容来自狂神笔记.