mybatis的CRUD操作

UserDao.java:

public interface UserDao {
    //查询所有信息
    List<User> findAll();
    //通过id查询
    User getById(int id);
    //插入数据
    void insert(User user);
    //修改
    void update(User user);
    //删除
    void deleteUserByid(int id);
    //查询
    List<User> find(Map<String,Object> param);
    //查询
    User getById2(int id);
}

UserDaoImpl.java:

public class UserDaoImpl implements UserDao {
    private SqlSessionFactory sqlSessionFactory;

    public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
        this.sqlSessionFactory=sqlSessionFactory;
    }
    @Override
    public List<User> findAll() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List<User> users=sqlSession.selectList("com.wance.model.Dao.UserDao.findAll");
        sqlSession.close();
        return users;
    }

    @Override
    public User getById(int id) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        User user=sqlSession.selectOne("com.wance.model.Dao.UserDao.getById",id);
        sqlSession.close();
        return user;
    }

    @Override
    public void insert(User user) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.insert("com.wance.model.Dao.UserDao.insert",user);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public void update(User user) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.update("com.wance.model.Dao.UserDao.update",user);
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public void deleteUserByid(int id) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        sqlSession.delete("com.wance.model.Dao.UserDao.deleteUserByid",id);
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public List<User> find(Map<String, Object> param) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> list=userDao.find(param);
        return list;
    }

    @Override
    public User getById2(int id) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        System.out.println(userDao.getById2(id));
        return null;
    }
}

配置文件:

<?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">
<!--namespace为UserDao的路径-->
<mapper namespace="com.wance.model.Dao.UserDao">
    <!--配置查询所有信息-->
    <!--id为方法的名称-->
    <select id="findAll" resultType="com.wance.model.entity.User">
         select * from user;
    </select>
    <select id="getById" resultType="com.wance.model.entity.User" parameterType="java.lang.Integer">
        select * from user where id=#{id};
    </select>
    <insert id="insert" parameterType="com.wance.model.entity.User">
        insert into user values (#{id},#{username},#{birthday},#{sex},#{address});
    </insert>
    <update id="update" parameterType="com.wance.model.entity.User">
        update user set username=#{username} where id=#{id};
    </update>
    <delete id="deleteUserByid" parameterType="java.lang.Integer">
        delete from user where id=#{id};
    </delete>
    <select id="find" parameterType="java.util.HashMap" resultType="com.wance.model.entity.User">
        select * from user where username=#{username} <![CDATA[AND id<#{id}]]>
    </select>
    <resultMap id="ResultMap" type="com.wance.model.entity.User">
        <id column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="birthday" property="birthday"/>
        <result column="sex" property="sex"/>
        <result column="address" property="address"/>
    </resultMap>
    <select id="getById2" parameterType="java.lang.Integer" resultMap="ResultMap">
        select * from user where id=#{id};
    </select>
</mapper>

测试类:

public class UserDaoImplTest {
    //1 读取配置文件
    InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml");
    //2 创建SqlSessionFactory工厂
    SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
    SqlSessionFactory factory=builder.build(in);

    UserDaoImpl udi=new UserDaoImpl(factory);

    public UserDaoImplTest() throws IOException {
    }

    @Test
    public void findAll() {
        List<User> users=udi.findAll();
        System.out.println(users);
    }

    @Test
    public void getById() {
        User user=udi.getById(1);
        System.out.println(user);
    }

    @Test
    public void insert() {
        User user=new User();
        user.setId(6);
        user.setUsername("admin");
        user.setBirthday(new Date());
        user.setSex("man");
        user.setAddress("南昌");
        udi.insert(user);
    }

    @Test
    public void update() {
        User user=new User();
        user.setId(6);
        user.setUsername("aaa");
        udi.update(user);
    }

    @Test
    public void deleteUserByid() {
        User user=new User();
        user.setId(6);
        udi.deleteUserByid(user.getId());
    }
    @Test
    public void find(){
        Map<String,Object> map=new HashMap<>();
        map.put("username","ting");
        map.put("id",7);
        System.out.println(udi.find(map));
    }

    @Test
    public void getById2() {
        System.out.println(udi.getById2(2));
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java后端指南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值