Mybatis简单实现增删改查

版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 https://blog.csdn.net/wwwzydcom/article/details/82975900

javabean中

package com.sxt.bean;

import org.apache.ibatis.type.Alias;


public class Employee {
    private int id;
    private String last_name;
    private String gender;
    private String email;

    public Employee() {
    }

    public Employee(int id, String last_name, String gender, String email) {
        this.id = id;
        this.last_name = last_name;
        this.gender = gender;
        this.email = email;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", last_name='" + last_name + '\'' +
                ", gender='" + gender + '\'' +
                ", email='" + email + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

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

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

接口中定义增删改查的方法

package com.sxt.dao;

import com.sxt.bean.Employee;

public interface EmployMapper {
    public Employee getEmpById(Integer id);
    public Long addEmp(Employee employee);
    public boolean updateEmp(Employee employee);
    public void deleteEmpById(Integer id);

}

全局配置文件

<?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>
    <properties resource="db.properties"></properties>



    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.name}" />
                <property name="password" value="${jdbc.pwd}" />
            </dataSource>
        </environment>
    </environments>
    <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
    <mappers>
        <mapper resource="EmployeeMapper.xml" />
    </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.sxt.dao.EmployMapper">
    <!--
    namespace:名称空间;指定为接口的全类名
    id:唯一标识
    resultType:返回值类型
    #{id}:从传递过来的参数中取出id值

    public Employee getEmpById(Integer id);
     -->
    <select id="getEmpById" resultType="com.sxt.bean.Employee">
        select id,last_name,gender,email from tbl_employee where id = #{id}
    </select>

    <!--public void addEmp(Employee employee);-->
    <!--public void updateEmp(Employee employee);-->
    <!--public void deleteEmpById(Integer id);-->

    <!--员工添加方法-->
    <insert id="addEmp" parameterType="com.sxt.bean.Employee">
        INSERT INTO tbl_employee(last_name,email,gender) VALUES(#{last_name},#{email},#{gender})
    </insert>
    <update id="updateEmp">
          UPDATE tbl_employee SET last_name=#{last_name},email=#{email},gender=#{gender} WHERE id=#{id}
    </update>
    <delete id="deleteEmpById">
        DELETE FROM tbl_employee WHERE id=#{id}
    </delete>
</mapper>

测试类的实现

  //1.根据配置的xml文件(全局配置文件,创建一个sqlsessionfactory对象,有数据源一些运行环境)
        public SqlSessionFactory getSqlSessionFactory () throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(inputStream);
        }
 @Test
    public void test03() throws IOException {
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        //1.获取到sqlsession不会自动提交
        SqlSession openSession = sqlSessionFactory.openSession();
        try {
            EmployMapper mapper = openSession.getMapper(EmployMapper.class);
            //添加操作
            //Employee employee = new Employee(2,"Tom","1","[email protected]");
            //mapper.addEmp(employee);
            //修改操作
            Employee employee = new Employee(1,"Tom1","0","[email protected]");
           boolean updateEmp= mapper.updateEmp(employee);
           System.out.println(updateEmp);
            //删除操作
            //mapper.deleteEmpById(2);

            //2.手动提交数据
            openSession.commit();
        }finally {
            openSession.close();
        }
    }

获取自增主键的值:
mysql支持自增主键,其获取通过statement.getGenreatedKeys();

userGeneratedKeys=“true”;使用自增主键获取主键值策略
keyProperty:指定对应的主键属性,mybatis获取到主键之后,将值封装给javaBean的哪个属性

核心代码

		Employee employee = new Employee(2,"Tom","1","[email protected]");
        mapper.addEmp(employee);
        System.out.println(employee.getId());

映射的xml文件

insert id="addEmp" parameterType="com.sxt.bean.Employee"
useGeneratedKeys="true" keyProperty="id">
    INSERT INTO tbl_employee(last_name,email,gender) VALUES(#{last_name},#{email},#{gender})
</insert>

根据培训机构视频自学编写的代码

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/82975900