Mtbatis-增删改查

配置xml文件

注意:数据库表的字段名要与封装对象的属性名严格一致,windows上MySQL不区分大小写,但是Linux上面严格区分大小写,如果两者不一致则可以配置resultMap标签来解决

<?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="edu.yjsj.dao.UserDaoImpl">
    <!-- 查询所有 -->
    <select id="selectAll" resultType="edu.yjsj.domain.User">
        select * from user
    </select>
    <!-- 保存用户信息 -->
    <insert id="saveUser" parameterType="edu.yjsj.domain.User">
        <!--返回自增id keyProperty对应实体类 keyColumn对应表-->
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            select last_insert_id()
        </selectKey>
        insert  into user(userName,userPwd) values (#{userName},#{userPwd})
    </insert>
    <!-- 更新用户信息 -->
    <update id="updateUser" parameterType="edu.yjsj.domain.User">
        update user set userName = #{userName},userPwd = #{userPwd} where id = #{id};
    </update>
    <!-- 删除用户信息 -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from user where id = #{id}
    </delete>
    <!-- 模糊查询用户信息 -->
    <select id="selectLike" parameterType="String" resultType="edu.yjsj.domain.User">

        <!-- select * from user where userPwd like #{userPwd} -->
        select * from user where userPwd like '${value}'
    </select>
    <!-- 查询所有数据条数 -->
    <select id="selectTotal" resultType="int">
        select count(id) from user
    </select>
    <!-- ognl测试 -->
    <select id="selectByQuery" parameterType="edu.yjsj.domain.Query" resultType="edu.yjsj.domain.User">
         select * from user where userName like #{user.userName}
    </select>
</mapper>

接口代码

package edu.yjsj.dao;

import edu.yjsj.domain.Query;
import edu.yjsj.domain.User;

import java.util.List;

public interface UserDaoImpl {
    //查询所有
    List<User> selectAll();
    //保存用户信息
    void saveUser(User user);
    //更新信息
    void updateUser(User user);
    //删除信息
    void deleteUser(Integer id);
    //模糊查询
    List<User> selectLike(String str);
    //查询所有数据条数
    int selectTotal();
    //ognl测试
    List<User> selectByQuery(Query query);
}


运行测试类

package edu.yjsj.test;


import edu.yjsj.dao.UserDaoImpl;
import edu.yjsj.domain.Query;
import edu.yjsj.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

public class TestSelectAll {
    private InputStream in = null;
    private SqlSessionFactory  factory = null;
    private SqlSession session =null;
    private UserDaoImpl userDao = null;

    @Before
    public void init()throws Exception{
        //1.读取配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        factory = new SqlSessionFactoryBuilder().build(in);
        //3.使用工厂产生SqlSession对象
        session = factory.openSession();
        //4.使用SqlSessiond对象创建Dao接口的代理对象
        userDao = session.getMapper(UserDaoImpl.class);
    }
    @After
    public void destory() throws Exception{
        session.commit();
        //释放资源
        session.close();
        in.close();
    }
    @Test
    public void testSelectAll () throws Exception{
        //使用代理对象执行方法
        List<User> userList = userDao.selectAll();
        for (User user:userList) {
            System.out.println(user);
        }
    }
    @Test
    public void saveUser(){
        User user = new User();
        user.setUserName("王二");
        user.setUserPwd("123");
        System.out.println(user);
        userDao.saveUser(user);
        System.out.println(user);
    }
    @Test
    public void updateUser(){
        User user = new User();
        user.setUserName("王五");
        user.setUserPwd("123");
        user.setId(3);
        userDao.updateUser(user);
    }
    @Test
    public void deleteUser(){
        userDao.deleteUser(4);
    }

    @Test
    public void selectLike(){
        List<User> userList = userDao.selectLike("%12%");
        for (User user:userList) {
            System.out.println(user);
        }
    }

    @Test
    public void selectTotal(){
        System.out.println(userDao.selectTotal());
    }

    @Test
    public void selectByQuery(){
        Query query = new Query();
        User u = new User();
        u.setUserName("张三");
        query.setUser(u);
        List<User> userList = userDao.selectByQuery(query);
        for (User user:userList) {
            System.out.println(user);
        }
    }
}

没啥好说的,比较简单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值