使用Mybatis向Mysql数据库中插入数据,并返回自增的id

首先,在mysql数据库的仓库中,新增一张project_case表,来存储测试用例的相关信息,如下图所示:
使用Mybatis向Mysql数据库中插入数据,并返回自增的id
1.在pom.xml中将依赖的包导入进来

<!--MyBatis驱动包-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

<!-- Mysql驱动包 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

2.新建一个ProjectCase类,里面存放新增一条用例需要的参数和方法

public class ProjectCase {
    private Integer id;
    private String sign;
    private String name;
    private Integer projectid;
    private  Integer moduleid;
    private  Integer projectindex;
    private Date time;
    private String operationer;
    private Integer casetype;
    private String remark;
    private Integer failcontinue;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getProjectid() {
        return projectid;
    }

    public void setProjectid(Integer projectid) {
        this.projectid = projectid;
    }

    public Integer getModuleid() {
        return moduleid;
    }

    public void setModuleid(Integer moduleid) {
        this.moduleid = moduleid;
    }

    public Integer getProjectindex() {
        return projectindex;
    }

    public void setProjectindex(Integer projectindex) {
        this.projectindex = projectindex;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getoperationer() {
        return operationer;
    }

    public void setoperationer(String operationer) {
        this.operationer = operationer;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getFailcontinue() {
        return failcontinue;
    }

    public void setFailcontinue(Integer failcontinue) {
        this.failcontinue = failcontinue;
    }


    public Integer getCasetype() {
        return casetype;
    }

    public void setCasetype(Integer casetype) {
        this.casetype = casetype;
    }
}

3.创建一个接口和接口实现类

public interface ProjectCaseDao {
    public int insert(ProjectCase projectCase);

    public int update(ProjectCase projectCase);

    public int delete(int projectid);

    public List<ProjectCase> selectAll();

    public int countAll();

    public ProjectCase findById(int id);
}

public class ProjectCaseDaoImpl implements ProjectCaseDao {
    @Override
    public int insert(ProjectCase projectCase) {
        try {
            InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            sqlSession.insert("insertProjectCase",projectCase);
            sqlSession.commit();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int update(ProjectCase projectCase) {
        return 0;
    }

    @Override
    public int delete(int projectid) {
        return 0;
    }

    @Override
    public List<ProjectCase> selectAll() {
        return null;
    }

    @Override
    public int countAll() {
        return 0;
    }

    @Override
    public ProjectCase findById(int id) {
        return null;
    }
}

4.创建一个ProjectCaseMapper.xml文件

<?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.ctrip.ai.guidebot.dao.ProjectCaseDao">
    <select id="countAll" resultType="int">
        select count(*) c from project_case;
    </select>

    <select id="selectAll" resultType="com.ctrip.ai.guidebot.domain.ProjectCase">
        select * from project_case order by id asc
    </select>

    <insert id="insertProjectCase" useGeneratedKeys="true" keyProperty="id" parameterType="com.ctrip.ai.guidebot.domain.ProjectCase">
        insert into project_case(sign,name, projectid,moduleid,projectindex,time,operationer,casetype,remark,failcontinue) values(#{sign},#{name},#{projectid},#{moduleid},#{projectindex},#{time},#{operationer},#{casetype},#{remark},#{failcontinue})
    </insert>

    <update id="update" parameterType="com.ctrip.ai.guidebot.domain.ProjectCase">
        update project_case set id=#{id},sign=#{sign},name=#{name}, projectid=#{projectid},moduleid=#{modleid}, projectindex=#{projectindex}, time=#{time},operationer=#{operationer},
        remark=#{remark},failcontinue=#{failcontinue} where id=#{id}
    </update>

    <delete id="delete" parameterType="int">
        delete from project_case where id=#{id}
    </delete>

    <select id="findById" parameterType="Integer" resultType="com.ctrip.ai.guidebot.domain.ProjectCase">
        select * from project_case where id=#{id}
    </select>
</mapper>

5.创建一个mybatis.xml文件

<?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" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://10.32.1.150:3306/luckyframedb?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/ProjectCaseMapper.xml"/>
    </mappers>
</configuration>

6.新建一个测试类,来测试往mysql中新增一条数据

public class TestInsertProjectCase {

    public static void main(String[] args) {
        ProjectCase projectCase = new ProjectCase();

//        System.out.println("插入前主键ID为:" +projectCase.getId());

        projectCase.setSign("GUIDEBOT-44");
        projectCase.setCasetype(0);
        projectCase.setFailcontinue(0);
        projectCase.setModuleid(137);
        projectCase.setName("这是个程序输入的测试用例113");
        projectCase.setoperationer("fanny");
        projectCase.setProjectid(104);
        projectCase.setProjectindex(30);
        projectCase.setRemark("fanny test");
        projectCase.setTime(new Date());



        ProjectCaseDao dao = new ProjectCaseDaoImpl();
        dao.insert(projectCase);
        System.out.println("插入后的主键ID为:" + projectCase.getId());
    }
}

执行后,返回新增数据的主键,如下图所示:
使用Mybatis向Mysql数据库中插入数据,并返回自增的id
文件的组织结构如下:
使用Mybatis向Mysql数据库中插入数据,并返回自增的id