User selectUserById(int id);
int addUser(User user);
User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
int updateUser(User user);
int deleteUser(int id);
在Dao层中配置XML
<select id="selectUserById" resultType="com.wang.pojo.User">
select * from user where id = #{id};
</select>
<insert id="addUser" parameterType="com.wang.pojo.User">
insert into user (id,name ,pwd) values (#{id},#{name},#{pwd})
</insert>
<select id="selectUserByNP" resultType="com.wang.pojo.User">
select * from user where name = #{username} and pwd = #{pwd}
</select>
<update id="updateUser" parameterType="com.wang.pojo.User">
update user set name=#{name},pwd=#{pwd} where id =#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id};
</delete>
测试
@Test
public void testSelectUserById(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
User user=userDao.selectUserById(2);
System.out.println(user);
sqlSession.close();
}
@Test
public void testAddUser(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
userDao.addUser(new User(4,"jerry","123456"));
userDao.addUser(new User(5,"tom","2580"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void testSelectUserByNP(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
User user=userDao.selectUserByNP("jerry","123456");
System.out.println(user.getId());
sqlSession.close();
}
@Test
public void tsetUpdateUser(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
User user=userDao.selectUserById(1);
user.setPwd("2580");
user.setName("jerry");
int i=userDao.updateUser(user);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
@Test
public void tsetDeleteUser(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
int i=userDao.deleteUser(2);
System.out.println(i);
sqlSession.commit();
sqlSession.close();
}
要注意的是
1,在Dao.XML里面,输入的参数是paramterType,输出resultType
2,在测试中,增删改需要使用commit()方法,否则无法在数据库中实现方法
万能的map,map在参数众多的时候是很优秀的一种方法,但map是旁门左道,对象才是名门正派,方法对比:
Dao.xml
<select id="selectUserByNP" resultType="com.wang.pojo.User">
select * from user where name = #{username} and pwd = #{pwd}
</select>
<select id="selectUserByNP2" parameterType="map" resultType="com.wang.pojo.User">
select * from user where name = #{username} and pwd = #{pwd}
</select>
Dao.java
User selectUserByNP(@Param("username") String username,@Param("pwd") String pwd);
User selectUserByNP2(Map<String,Object> map);
test.java
@Test
public void testSelectUserByNP(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
User user=userDao.selectUserByNP("jerry","123456");
System.out.println(user.getId());
sqlSession.close();
}
@Test
public void testSelectUserByNP2(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
Map<String,Object> map=new HashMap<String,Object>();
map.put("username","tom");
map.put("pwd","2580");
User user=userDao.selectUserByNP2(map);
System.out.println(user);
sqlSession.close();
}
最后,模糊查询:
Dao.xml
<select id="getUserLike" resultType="com.wang.pojo.User">
select * from user where name like "%"#{value}"%"
</select>
Dao.java
List<User> getUserLike(Object value);
test.java
@Test
public void testGetUserLike(){
SqlSession sqlSession=MybatisUtils.getSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
List<User> userList=userDao.getUserLike("j");
for (User user : userList) {
System.out.println(user);
}
sqlSession.commit();
sqlSession.close();
}
输出