当写修改的方法时,里面的参数是个User对象,那么在UserMappwe.xml中values中要和对象的属性名相对应,并且需要创建对象,输入它的多个属性值需要更改的进行修改,比较麻烦,就可以考虑使用map
重复的代码不在写,只写更新过的:6. 7. 8.
UserDAO:
package com.kuang.dao;
import com.kuang.pojo.User11;
import java.util.List;
import java.util.Map;
public interface UserDao {
//查询所有用户
List<User11> getUserList();
//2.根据id查询
User11 getUserById(int id);
//3.添加一个用户
int addUser(User11 user11);
//4.修改用户
int updateUser(User11 user11);
//5.删除一个用户
int deleteUser(int id);
//6.万能的Map,添加用户
int addUser2(Map<String,Object> map);
//7.万能Map,查询用户
User11 getUserById2(Map<String,Object> map);
//8.模糊查询
List<User11> getUserLike(String value);
}
UserMappper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.dao.UserDao">
<!--使用insert,update,delete,select标签来写sql语句
resultType="com.kuang.pojo.User11":返回数据的类型
-->
<select id="getUserList" resultType="com.kuang.pojo.User11">
select * from mybatis.user11
</select>
<!-- 2.根据id查询-->
<select id="getUserById" parameterType="int" resultType="com.kuang.pojo.User11">
select * from mybatis.user11 where id=#{id}
</select>
<!-- 3.插入一条数据,对象中的属性可直接取出来 ,如果parameterType传递的是User11对象,则values必须和对象的属性名一样-->
<insert id="addUser" parameterType="com.kuang.pojo.User11">
insert into mybatis.user11(id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
<!-- 4.修改用户-->
<update id="updateUser" parameterType="com.kuang.pojo.User11">
update mybatis.user11 set name=#{name},pwd=#{pwd} where id=#{id};
</update>
<!-- 5.删除用户-->
<delete id="deleteUser" parameterType="int">
delete from mybatis.user11 where id=#{id}
</delete>
<!-- 6.万能的Map来添加用户 如果parameterType是map,values中可以随便,命名要和map的key对应就行,传递Map的key-->
<insert id="addUser2" parameterType="map">
insert into mybatis.user11(id,name,pwd) values (#{userid},#{username},#{password});
</insert>
<!-- 7.万能Map来查询数据-->
<select id="getUserById2" parameterType="map" resultType="com.kuang.pojo.User11">
select * from mybatis.user11 where id=#{userid} and name=#{username};
</select>
<!-- 8.迷糊查询
第一种
select * from mybatis.user11 where name like #{value}
-->
<select id="getUserLike" resultType="com.kuang.pojo.User11">
select * from mybatis.user11 where name like "%"#{value}"%"
</select>
</mapper>
UserDAOTest:
package com.kuang.dao;
import com.kuang.dao.UserDao;
import com.kuang.pojo.User11;
import com.kuang.utils.MybaitsUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserDAOTest {
//测试查询所有用户
@Test
public void test(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
List<User11> user11List=userDao.getUserList();
//方式二:不推荐使用
// List<User11> user11List = sqlSession.selectList("com.kuang.dao.UserDao.getUserList");
for (User11 user:user11List){
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
//2.根据id查询
@Test
public void getUserByid(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
User11 user11=userDao.getUserById(1);
System.out.println(user11);
sqlSession.close();
}
//3.插入一条数据,增删改,需要提交事务
@Test
public void addUser(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
int res=userDao.addUser(new User11(4,"哈哈","123456"));
if (res>0){
System.out.println("插入成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
//4.修改用户信息
@Test
public void updateUser(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
int res=userDao.updateUser(new User11(4,"呵呵","123"));
if (res>0){
System.out.println("修改成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
//5.根据id删除用户
@Test
public void deleteUser(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
int res=userDao.deleteUser(4);
if (res>0){
System.out.println("删除成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
//6.万能的Map来添加一条数据
@Test
public void addUser2(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
Map<String,Object> map=new HashMap<String, Object>();
map.put("userid",5);
map.put("username","hellow");
map.put("password","123");
int res = userDao.addUser2(map);
if (res>0){
System.out.println("插入成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
//7.万能的Map来查询数据
@Test
public void getUserById2(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
Map<String,Object> map=new HashMap<String, Object>();
map.put("userid",5);
map.put("username","hellow");
User11 userById2 = userDao.getUserById2(map);
System.out.println(userById2);
sqlSession.close();
}
//8.模糊查询
@Test
public void getUserLike(){
//第一步:获取SqlSession对象
SqlSession sqlSession= MybaitsUtils.getSqlSession();
//方式一:getMapper 获取代理对象dao
UserDao userDao=sqlSession.getMapper(UserDao.class);
//List<User11> user11List=userDao.getUserLike("%李%");
List<User11> user11List=userDao.getUserLike("李");
for (User11 user11 : user11List) {
System.out.println(user11);
}
sqlSession.close();
}
}
6.
7.
8.