01-Mybatis的基本CRUD操作

Posted on 2021-03-03 23:54  萌栈师  阅读(353)  评论(0)    收藏  举报

Mybatis入门

1. 导包

​ 将所需的jar包加入工程

2.创建配置文件

​ 在src下创建applicationContext-dao.xml文件,该文件是mybaits连接数据库和扫描sql文件等所需信息的配置文件(参考官网:https://mybatis.org/mybatis-3/zh/getting-started.html)

<?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="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatisdata?serverTimezone=CST&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com\yd\mapper\UserMapper.xml"/>
    </mappers>
</configuration>

3.创建目录

4.创建pojo实体类

public class Users implements Serializable {

  private long uid;
  private String username;
  private String password;
  private String city;
  
  getter()/setter()
  toString()
}

5.创建mapper.xml文件

​ 该文件用于写sql语句(暂时硬编码)CURD示例如下:

<?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.yd.mapper">
    <select id="selById" resultType="com.yd.pojo.Users">
        select * from users where uid = 14
  </select>
    <!-- 返回一个集合 resultType就是泛型 -->
    <select id="selAll" resultType="com.yd.pojo.Users">
        select * from users
  </select>

    <insert id="insetUser">
        insert into users values(null,'胡歌','22222','湖南')
    </insert>

    <update id="updateUser">
        update users set password = '111' where uid = 26
    </update>

    <delete id="delUser">
        delete from users where uid = 21
    </delete>
</mapper>

6.测试

public class TestDemo {
    SqlSession sqlSession;
    public TestDemo() {
        //创建applicationContext-dao.xml文件输入流
        InputStream in = null;
        try {
            //使用ibatis中的Resources类方法
            in = Resources.getResourceAsStream("applicationContext-dao.xml");
            //使用工厂,将文件创建为对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
            //自动提交
      //sqlSession = sqlSessionFactory.openSession(ExecutorType.SIMPLE,true);
            //使用工厂对象,创建sql执行器 默认手动提交事务
            sqlSession = sqlSessionFactory.openSession();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @Test
    public void selById(){
        Users user = sqlSession.selectOne("com.yd.mapper.selById");
        System.out.println(user);
    }

    @Test
    public void selMap(){
        //Map以键值对的形式返回 "username":键名
        Map<String, Users> userMap = sqlSession.selectMap("com.yd.mapper.selAll", "username");
        System.out.println(userMap);
    }
    @Test
    public void selList(){
        List<Users> userList = sqlSession.selectList("com.yd.mapper.selAll");
        System.out.println(userList);
    }

    @Test
    public void insert(){
        int n = sqlSession.insert("com.yd.mapper.insetUser");
        sqlSession.commit();
        System.out.println(n==1?"插入成功":"插入失败");
    }

    @Test
    public void update(){
        int n = sqlSession.update("com.yd.mapper.updateUser");
        sqlSession.commit();
        System.out.println(n==1?"更新成功":"更新失败");
    }

    @Test
    public void delete(){
        int n = sqlSession.delete("com.yd.mapper.delUser");
        sqlSession.commit();
        System.out.println(n==1?"删除成功":"删除失败");
    }
}

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3