Mybatis入门:2(xml形式的增删改查)

xml形式的增删改查

这里感觉没啥好讲的,照着代码自己敲一遍、认真再看看应该都懂的。

Maven工程坐标

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Mybatis02</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
    </dependencies>

</project>

dao接口

package com.dao;

import com.domain.User;

import java.util.List;

public interface UserDao {
    /**
     * 普通查询操作
     * @return
     */
    List<User>findAll();
    /**
     * 增添操作
     * @param user
     */
    void addUser(User user);

    /**
     * 根据产品类型删除
     * @param type
     */
    void deleteUserByType(String type);

    /**
     * 修改用户信息
     * @param user
     */
    void updateUser(User user);

    /**
     * 模糊查询操作
     * @return
     */
    List<User>findByType(String user);
}

实现类

package com.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private String product_name;
    private String product_type;
    private int product_price;
    private Date regist_date;

    public String getProduct_name() {
        return product_name;
    }

    public void setProduct_name(String product_name) {
        this.product_name = product_name;
    }

    public String getProduct_type() {
        return product_type;
    }

    public void setProduct_type(String product_type) {
        this.product_type = product_type;
    }

    public int getProduct_price() {
        return product_price;
    }

    public void setProduct_price(int product_price) {
        this.product_price = product_price;
    }

    public Date getRegist_date() {
        return regist_date;
    }

    public void setRegist_date(Date regist_date) {
        this.regist_date = regist_date;
    }

    @Override
    public String toString() {
        return "User{" +
                "product_name='" + product_name + '\'' +
                ", product_type='" + product_type + '\'' +
                ", product_price=" + product_price +
                ", regist_date=" + regist_date +
                '}';
    }
}

Mybatis主配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="mysql">
    <environment id="mysql">
        <transactionManager type="JDBC"></transactionManager>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/study"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>
    <mappers>
        <mapper resource="com/dao/IUserDao.xml"></mapper>
    </mappers>
</configuration>

映射配置文件

<?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.dao.UserDao">
    <!--查询-->
    <select id="findAll" resultType="com.domain.User">
        select * from product
    </select>
    <!--增添-->
    <insert id="addUser" parameterType="com.domain.User">
        insert into product(product_name,product_type,product_price,regist_date) value (#{product_name},#{product_type},#{product_price},#{regist_date})
    </insert>
    <!--删除-->
    <delete id="deleteUserByType" parameterType="String">
        delete from product where product_type=#{product_type}
    </delete>
    <!--修改-->
    <update id="updateUser" parameterType="com.domain.User">
        update product set product_name=#{product_name},product_price=#{product_price},regist_date=#{regist_date} where product_type=#{product_type}
    </update>
    <select id="findByType" parameterType="String" resultType="com.domain.User">
        select * from product where product_type like #{product_type}
    </select>
</mapper>

测试类

package com.test;

import com.dao.UserDao;
import com.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.text.SimpleDateFormat;
import java.util.List;

public class MybatisTest {
    private static UserDao userDao;
    private static SqlSession session;
    private static InputStream inputStream;
    @Before
    public void test() throws Exception{
        inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(inputStream);
        session = factory.openSession();
        userDao = session.getMapper(UserDao.class);
    }

    @Test
    public void testFindAll(){                  //普通查询操作
        List<User>users = userDao.findAll();
        for (User user:users){
            System.out.println(user);
        }
    }

    @Test
    public void testAddUser(){                  //增添操作
        User user = new User();
        user.setProduct_name("竖笛");
        user.setProduct_type("乐器");
        user.setProduct_price(3000);
        try{
            user.setRegist_date(new SimpleDateFormat("yyyy-MM-dd").parse("2020-7-16"));
        }catch (Exception e){
            e.printStackTrace();
        }
        userDao.addUser(user);
        session.commit();           //对表格进行修改操作(增删改)时必须得提交事务,否则表格不会保存修改
//      若没有写session.commit();则更新的数据没有进行更新
//      进行add和update必须进行session.commit();
    }

    @Test
    public void testDelete(){                   //删除操作
        userDao.deleteUserByType("乐器");
        session.commit();           //对表格进行修改操作(增删改)时必须得提交事务,否则表格不会保存修改
    }

    @Test
    public void testUpdate(){                   //修改操作
        User user = new User();
        user.setProduct_type("乐器");
        user.setProduct_name("吉他");
        user.setProduct_price(10000);
        try{
            user.setRegist_date(new SimpleDateFormat("yyyy-MM-dd").parse("2020-7-16"));
        }catch (Exception e){
            e.printStackTrace();
        }
        userDao.updateUser(user);
        session.commit();           //对表格进行修改操作(增删改)时必须得提交事务,否则表格不会保存修改
    }

    @Test
    public void testFindByType(){               //模糊查询操作
        List<User>userList = userDao.findByType("%用品%");
        for (User user:userList){
            System.out.println(user);
        }
    }

    @After
    public void destroy() throws Exception{     //资源关闭操作
        session.close();
        inputStream.close();
    }

运行结果
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值