1、实体类不变
2、mybatis-config.xml文件不变
3、接口里面上篇文章只写了增加用户;
新增:删除、修改、单个查询、全部查询方法
package com.mybatis.dao;
import com.mybatis.entity.User;
import java.util.List;
public interface UserD {
//增加
public int addUser(User user);
//删除
public int deleteUser(int uid);
//修改
public int updateUser(User user);
//查询个人
public User selectUser(int uid);
//查询全部
public List<User> selectAll();
}
4、mapper映射配置UserDao.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.mybatis.dao.UserD">
<!--增加-->
<select id="addUser" parameterType="com.mybatis.entity.User">
insert into user values(#{uid},#{uname},#{uage},#{upsw})
</select>
<!--删除-->
<select id="deleteUser">
delete from user where uid=#{uid}
</select>
<!--修改-->
<select id="updateUser" parameterType="com.mybatis.entity.User" >
update user set uname=#{uname},uage=#{uage},upsw=#{upsw} where uid=#{uid}
</select>
<!--查询个人-->
<select id="selectUser" resultType="com.mybatis.entity.User">
select uid,uname,uage,upsw from user where uid=#{id}
</select>
<!--查询所有-->
<select id="selectAll" resultType="com.mybatis.entity.User">
select * from user
</select>
</mapper>
这里在写<select>时要注意:id要和接口方法一致,
其次
参数类型parameterType要和方法的参数类型一致,比如
如果没有参数,不用写参数类型
addUser(User user)方法参数是一个对象那么我们可以直接写"com.mybatis.entity.User";也可以写参数的类类型"java.lang.Object"
结果类型:resultType也要和返回结果类型一致
注意的是list类型的返回结果类型是list里面存放的值的类型,本案例里面就是User对象
5、实现类
package com.mybatis.dao;
import com.mybatis.entity.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.util.List;
public class UserImpl implements UserD {
public int addUser(User user) {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
//通过SqlSessionFactoryBuilder对象构建SqlSessionFactory对象
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
//通过SqlSessionFactory创建SqlSession对象
SqlSession ss=ssf.openSession();
//执行数据库增加
int result=ss.insert("com.mybatis.dao.UserD.addUser",user);
//提交事务
ss.commit();
ss.close();
return result;
}
public int deleteUser(int uid) {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
//通过SqlSessionFactoryBuilder对象构建SqlSessionFactory对象
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
//通过SqlSessionFactory创建SqlSession对象
SqlSession ss=ssf.openSession();
//执行数据库删除
int result=ss.delete("com.mybatis.dao.UserD.deleteUser",uid);
//提交事务
ss.commit();
ss.close();
return result;
}
public int updateUser(User user) {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
//通过SqlSessionFactoryBuilder对象构建SqlSessionFactory对象
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
//通过SqlSessionFactory创建SqlSession对象
SqlSession ss=ssf.openSession();
//执行数据库修改
int result=ss.update("com.mybatis.dao.UserD.updateUser",user);
//提交事务
ss.commit();
ss.close();
return result;
}
public User selectUser(int uid) {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
//通过SqlSessionFactoryBuilder对象构建SqlSessionFactory对象
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
//通过SqlSessionFactory创建SqlSession对象
SqlSession ss=ssf.openSession();
//执行数据库查询个人
User result=ss.selectOne("com.mybatis.dao.UserD.selectUser",uid);
//提交事务
ss.commit();
ss.close();
return result;
}
@Override
public List<User> selectAll() {
//创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
//通过SqlSessionFactoryBuilder对象构建SqlSessionFactory对象
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(this.getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
//通过SqlSessionFactory创建SqlSession对象
SqlSession ss=ssf.openSession();
//执行数据库查询全部
List<User> result=ss.selectList("com.mybatis.dao.UserD.selectAll");
//提交事务
ss.commit();
ss.close();
return result;
}
}
6、运行类
package com.mybatis.run;
import com.mybatis.dao.UserImpl;
import com.mybatis.dao.UserD;
import com.mybatis.entity.User;
import java.util.List;
public class Run {
public static void main(String[] args) {
UserD userDao=new UserImpl();
User user=new User(17,"花",6,"123456");
// userDao.addUser(user);
// userDao.deleteUser(2);
//查询个人
// System.out.println(userDao.selectUser(1));
// User user1=new User(3,"春华",3,"123456");
//修改
// userDao.updateUser(user);
//查询所有
List<User> userList=userDao.selectAll();
for (User u:userList){
System.out.println(u.toString());
}
}
}
关于参数类型和返回值类型没有详细说明
DML操作标签:isnert,update,delete 定义了数据库的具体dml操作。
parameterType=“Mapper接口中方法形参的完全限定名”
DQL操作标签:select 定义具体的DQL操作
resultType属性=“Mapper接口中方法的返回值的完全限定名,集合指定集合中元素的类型”