Mybatis的增删改查

插入数据

编写实体类

public class hero {
    private int id;
    private String name;
    private int pwd;
    private Date birthday;

    @Override
    public String toString() {
        return "hero{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd=" + pwd +
                ", birthday=" + birthday +
                '}';
    }

    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 int getPwd() {
        return pwd;
    }

    public void setPwd(int pwd) {
        this.pwd = pwd;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public hero(int id, String name, int pwd, Date birthday) {

        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.birthday = birthday;
    }
}

编写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="development">
        <environment id="development">
            <!--事务管理-->
            <transactionManager type="JDBC"/>
            <!--数据源 POOLED 连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/hero"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--导入Mapper.xml 里面写各种各样的sql语句-->
        <mapper resource="Mapper.xml"></mapper>
    </mappers>
</configuration>

编写接口类 提供方法

public interface PersonMapper {

    void add(hero hero);
}

编写映射文件 里面写sql语句

<?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 必须是接口名
<mapper namespace="com.Person.PersonMapper">
	id必须是接口的方法名 Parmaetertype 是 参数类型 #{}是取出hero对象的值
   <insert id="add" parameterType="com.Person.hero">
       insert into person  values (#{id},#{name},#{pwd},#{birthday});
   </insert>
</mapper>

代码测试


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 java.io.IOException;
import java.io.InputStream;
import java.util.Date;


public class test {
    public static void main(String[] args) throws IOException {
        //加载 Mybatis 核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("Mybatis-config.xml");
        //创建工厂
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //创建 sqlSession 会话
        SqlSession sqlSession = build.openSession();
		//通过会话 获取接口对象
        PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);
		//接口调用方法
        mapper.add(new hero(1024,"Tom",465,new Date()));
        sqlSession.commit();//提交事务
        sqlSession.close();
        resourceAsStream.close();
    }
}

程序结果
image

查询

public interface PersonMapper {

    void add(hero hero);
    //根据id 查询数据
    List<hero> SelectID(hero hero);
}

编写映射文件

<?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.Person.PersonMapper">
	 parameterType="com.Person.hero" 是返回值类型是hero
    <select id="SelectID" resultType="com.Person.hero"
            parameterType="com.Person.hero" >
        select * from person where id = #{id};
    </select>
</mapper>

测试

//加载 Mybatis 核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("Mybatis-config.xml");
        //创建工厂
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //创建 sqlSession 会话
        SqlSession sqlSession = build.openSession();

        PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);


        List<hero> heros = mapper.SelectID(new hero(233, "张三", 123, new Date()));
        for (hero hero : heros) {
            System.out.println(hero);
        }

        sqlSession.close();
        resourceAsStream.close();

程序结果
image

删除操作

接口类添加删除方法

public interface PersonMapper {

    void add(hero hero);
    //根据id 查询数据
    List<hero> SelectID(hero hero);
    //删除
    void DeleteID(hero hero);
}

映射文件中添加删除标签

<?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.Person.PersonMapper">

    <delete id="DeleteID" parameterType="com.Person.hero">
        delete from person where id = #{id};
    </delete>
</mapper>

测试

//加载 Mybatis 核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("Mybatis-config.xml");
        //创建工厂
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //创建 sqlSession 会话
        SqlSession sqlSession = build.openSession();

        PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);


        mapper.DeleteID(new hero(233, "张三", 123, new Date()));
        sqlSession.commit();//一定要提交 不然 删除 没用

        sqlSession.close();
        resourceAsStream.close();

程序结果
image

修改操作

在接口类 添加修改方法

public interface PersonMapper {

    void add(hero hero);
    //根据id 查询数据
    List<hero> SelectID(hero hero);
    //删除
    void DeleteID(hero hero);
    //修改
    void UpdateID(hero hero);
}

映射文件 添加修改标签

<?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.Person.PersonMapper">
    
    <update id="UpdateID" parameterType="com.Person.hero">
        update person set name = #{name} where id = #{id};
    </update>
</mapper>

程序结果
image

posted @ 2022-06-07 11:41  起始者  阅读(22)  评论(0)    收藏  举报