public class User {
private int id;
private String name;
private String pwd;
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", pwd='" + pwd + ''' +
'}';
}
}
Dao接口
import com.mnm.pojo.User;
import java.util.List;
public interface UserDao {
List getUserList();
}
接口实现类
由原来的UserDaoImpl转变为一个Mapper配置文件 官方文档内容:
select * from Blog where id = #{id}
稍加修改为自己的 UserMapper.xml文件
4.测试
import com.mnm.pojo.User;
import com.mnm.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test(){
//1.获得sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//2.执行sql
UserDao userDao = sqlSession.getMapper(UserDao.class);
List userList = userDao.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
}
三.CRUD
1.namespace
namespace中的包名要和dao/mapper接口的包名一致!
2.增删改查语句
查询语句
id:是对应的namespace中的方法名
resuletType:sql语句执行的返回值
parameterType:参数类型
将UserDao重命名为UserMapper后
UserMapper文件内容:
import com.mnm.pojo.User;
import java.util.List;
public interface UserMapper {
//查询全部用户
List getUserList();
//根据Id查询用户
List getUserById(int id);
//添加用户
int addUser(User user);
//修改用户
int updateUser(User user);
//删除用户
int deleteUser(int id);
}
UserMapper.xml文件
UserDaoTest 测试类代码
import com.mnm.pojo.User;
import com.mnm.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test(){
//1.获得sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//2.执行sql
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List userList = userDao.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void getUserById(){
//1.获得sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//2.执行sql
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List userList = userDao.getUserById(2);
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void addUser(){
//1.获得sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(4, "赵六", "123456"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"六六","234567"));
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
}
注意:增删改需要提交事务
3.万能的Map
假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map
import com.mnm.pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
//添加用户2,有大量字段
int addUser2(Map map);
}
UserMapper.xml
insert into user (id,name,pwd) VALUES (#{userId},#{userName},#{passWord})