程序员社区

【MyBatis学习及总结02】MyBatis实现CRUD操作

文章目录

        • 1.创建环境
        • 2.写配置文件
        • 3.编写测试类

1.创建环境

1.导包:
在这里插入图片描述
在resource目录下导入一个日志文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
 <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
   <param name="Encoding" value="UTF-8" />
   <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
   </layout>
 </appender>
 <logger name="java.sql">
   <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
   <level value="info" />
 </logger>
 <root>
   <level value="debug" />
   <appender-ref ref="STDOUT" />
 </root>
</log4j:configuration>

1.数据库和表
在这里插入图片描述
2.封装数据库的JavaBean对象

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
    private Integer id;
    private String empName;
    private String email;
    private String gender;
}

3.操作数据库的dao接口,这个接口中增删改查方法

public interface EmployeeDao {
    public int insertEmployee(Employee employee);
    public boolean deleteEmployee(int id);
    public int updateEmployee(Employee employee);
    public Employee getEmpById(int id);
}

2.写配置文件

1.写全局配置文件:mybatis-config.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://localhost:3306/mybatis_01?
                useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
            <property name="username" value="root"/>
            <property name="password" value="123"/>
        </dataSource>
    </environment>
</environments>
</configuration>

2.写映射配置文件:EmployeeDao.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.hh.dao.EmployeeDao">
    <!--
        #{属性名}:从测试类方法传入的参数对象中取出对应属性的值
        这里面的属性名必须和实体类中的属性名完全一致
    -->
    <select id="getEmpById" resultType="com.hh.bean.Employee">
        select * from t_employee where  id=#{id}
    </select>

    <update id="updateEmployee">
        update t_employee
        set empname=#{empName},gender=#{gender},email=#{email} where id=#{id}
    </update>

    <delete id="deleteEmployee">
        delete from t_employee where id=#{id}
    </delete>
    
    <insert id="insertEmployee">
        insert into t_employee(empname,gender,email) values (#{empName},#{gender},#{email})
    </insert>
</mapper>

3.将映射配置文件在全局配置文件中注册:

<!--引入我们自己编写的每一个接口的实现文件-->
<mappers>
    <mapper resource="com/hh/dao/EmployeeDao.xml"/>
</mappers>

3.编写测试类

对于查询数据库中数据

public class MyTest {
    SqlSessionFactory sqlsessionFactory;
    @Before
    public void initSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream =
                Resources.getResourceAsStream(resource);
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        sqlsessionFactory  = builder.build(inputStream);
    }

    @Test
    public void testSelect() throws IOException {
        SqlSession sqlSession = sqlsessionFactory.openSession();
        EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
        Employee employee = mapper.getEmpById(1);
        System.out.println(employee);
    }
}

在这里插入图片描述
对于添加数据,删除数据,修改数据都需要手动提交commit
首先添加数据:

@Test
    public void testInsert(){
        SqlSession sqlSession = sqlsessionFactory.openSession();
        try {
            EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
            int i = mapper.insertEmployee(
                    new Employee(null, "tomcat", "tomcat@qq.com", "0"));
            System.out.println(i);
        }finally {
            //手动提交
            sqlSession.commit();
            sqlSession.close();
        }
    }

在这里插入图片描述
修改数据:

@Test
public void testUpdate(){
    SqlSession sqlSession = sqlsessionFactory.openSession();
    try {
        EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
        mapper.updateEmployee(new Employee(6,"gutianle","gutainlw@qq.com","1"));
    } finally {
        //手动提交
        sqlSession.commit();
        sqlSession.close();
    }
}

在这里插入图片描述
删除数据:

@Test
public void testDelete(){
    SqlSession sqlSession = sqlsessionFactory.openSession();
    try {
        EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
        mapper.deleteEmployee(6);
    } finally {
        //手动提交
        sqlSession.commit();
        sqlSession.close();
    }
}

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【MyBatis学习及总结02】MyBatis实现CRUD操作

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区