mybaits基础增删改查-------mybatis(四)

Mybatis的增删改查

  • mybatis流程:
    1 创建实体类及接口方法
    2 创建全局配置文件 configuration.xml
    3 创建 sql 映射文件 BlogMapper.xml
    4 将全局文件中维护 sql映射文件配置
    5 调用java API 执行相关sql操作
    注意sqlSession是线程非安全的

    实体java类:

    package model;
    
    public class Bloger {
        private Integer id;
        private String name;
        //这里需要注意变量的命名规范,因为实体变量会和sql记录一一对应,
        // 所以不规范的命名方式会导致mybatis执行异常
        private String userName;
        private int age;
        private String email;
    
        public Bloger(){}
    
        public Bloger(Integer id, String name, String userName, int age, String email) {
            this.id = id;
            this.name = name;
            this.userName = userName;
            this.age = age;
            this.email = email;
        }
    
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        @Override
        public String toString() {
            return "BlogId:"+ getId()+ "  BlogName:"+getName()+ "  username:" + getUserName();
        }
    }
    

接口方法:

	package dao;
	import model.Bloger;
	import org.apache.ibatis.annotations.Select;
	public interface BlogerMapper {
	    //通过接口方法 getBlogerId(Integer id)返回一个实体对象
	    public Bloger getBlogerId(Integer id);
	    public void addBloger(Bloger bloger);
	    public void updateBloger(Bloger bloger);
	    public Boolean deleteBloger(Integer id);
	}

mapper 配置文件:

<?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="dao.BlogerMapper">
    <!--model.Bloger -->
    <select id="getBlogerId" resultType="Bloger">
      select id,name,user_name,age,email from mybatis_test where id = #{id}
    </select>
    <!--添加博主 -->
    <insert id="addBloger" parameterType="Bloger">
        INSERT  into mybatis_test(user_name,age,email,name)
        VALUES (#{user_name},#{age},#{email},#{name});
    </insert>
    <update id="updateBloger" parameterType="model.Bloger">
        UPDATE mybatis_test
        SET user_name=#{user_name},age=#{age},email=#{email},name=#{name}
        WHERE id = #{id}
    </update>
    <delete id="deleteBloger" parameterType="model.Bloger">
        DELETE  FROM mybatis_test where id =#{id}
    </delete>
</mapper>
package test;

import dao.BlogerMapper;
import model.Bloger;
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;
public class MybatisDriver {

    public static void main(String[] args) throws Exception{
        mybatits_select();
    }

    public static SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "source/configuration.xml";
        InputStream inputStream= Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
        return sqlSessionFactory;
    }


    public static void mybatits_add() throws IOException{
        // 获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
        // 获取回话对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        // 这里MyBaitis帮我们创建了代理对象
        BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
        Bloger bloger=new Bloger();
        bloger.setName("樊瑞8号");
        bloger.setEmail("[email protected]");
        bloger.setAge(33);
        bloger.setUserName("wujianqinjian8");
        blogerMapper.addBloger(bloger);
        sqlSession.commit();
        sqlSession.close();
    }

    public static void mybatits_delete() throws IOException{
        // 获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
        // 获取回话对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        // 这里MyBaitis帮我们创建了代理对象
        BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
        blogerMapper.deleteBloger(11);
        sqlSession.commit();
        sqlSession.close();
    }

    public static void mybatits_update() throws IOException{
        // 获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
        // 获取回话对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        // 这里MyBaitis帮我们创建了代理对象
        BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
        Bloger bloger=blogerMapper.getBlogerId(9);
        bloger.setAge(33);
        bloger.setUserName("wujianqinjian09");
        blogerMapper.updateBloger(bloger);
        sqlSession.commit();
        sqlSession.close();
    }

    public static void mybatits_select() throws IOException{
        // 获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory=getSqlSessionFactory();
        // 获取回话对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        // 这里MyBaitis帮我们创建了代理对象
        BlogerMapper blogerMapper =sqlSession.getMapper(BlogerMapper.class);
        Bloger bloger=blogerMapper.getBlogerId(3);
        System.out.println(bloger);
        sqlSession.close();
    }
}
总结:看过前几章节的小伙伴,一定觉得这篇博客实在没有啥技术含量,为了保证系列的完整性,写了这个实例,需要注意的实体变量的命名需要规范从而避免不必要的麻烦!

最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!(由于广告太多,所以请先点赞,然后发博客名!)
在这里插入图片描述

创建了一个技术闲聊群:有兴趣可加我微信,拉你一起讨论杂七杂八的技术,虽然大家都不怎么活跃!
加好友备注:你的博客名 && 随便给我的任意文章点个赞或留言
在这里插入图片描述

发布了90 篇原创文章 · 获赞 1103 · 访问量 80万+

猜你喜欢

转载自blog.csdn.net/u010569419/article/details/87655861