- 编写接口
- 编写对应映射(mapper)中的sql语句
- 测试
namespace:命名空间,相当于绑定一个对应的接口,所欲其中包名要和接口名一致
sql语句写在
//查询全部用户
List<User> getUserList();
单独查询:
//根据ID查询用户
User getUserById(int id);
在Mapper中编写查询,首先,查询全部用户:
<select id="getUserList" resultType="com.sy.pojo.User" >
select * from mybatis.user
</select>
只用Id查询用户:
<select id="getUserById" parameterType="int" resultType="com.sy.pojo.User">
select * from mybatis.user where id = #{id}
</select>
其中id是namespace下面唯一的标识符 即方法名,resultType则是sql语句的返回值
接口中的方法名与映射文件中的SQL语句ID 一一对应
然后编写测试即可:
@Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = MyBatisUtils.getSqlSession();
try{
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
}catch (Exception e){
e.printStackTrace();//打印异常输出
}finally {
sqlSession.close();
}
}
@Test
public void getUserById(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
try catch是标准格式写法
2. Insert增
接口:
//insert一个用户
int addUser(User user);
编写sql 语句:
<insert id="addUser" parameterType="com.sy.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
parameterType是返回参数类型,此处返回的是类,即user
对象中的属性,可以直接取出来,用#{}格式
编测试:
//增删改需要提交事务
@Test
public void addUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.addUser(new User(4,"哈哈","123456"));//插入数据
if (res>0){
System.out.println("插入好了");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
3.delete删
接口:
//删除用户
int deleteUser(int id);
编写sql语句:
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id};
</delete>
测试:
@Test
public void deleteUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
4.update改
接口:
//修改用户
int updateUser(User user);
编写sql语句:
<update id="updateUser" parameterType="com.sy.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
测试:
@Test
public void updateUser(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"哦哈","123321"));
sqlSession.commit();
sqlSession.close();
}
map可以用来传递参数