美文网首页程序员
101.Mybatis 编程使用流程

101.Mybatis 编程使用流程

作者: 脱发的程序员 | 来源:发表于2020-12-18 05:55 被阅读0次

一、流程模板

        //1. 配置mybatis
        Configuration configuration = configuration();

        //2. 获取SqlSessionFactory
        SqlSessionFactory sessionFactory = new DefaultSqlSessionFactory(configuration);

        //3. 获取Session
        SqlSession sqlSession = sessionFactory.openSession(true);

        //4. 获取Mapper
        OrignUserMapper mapper = sqlSession.getMapper(OrignUserMapper.class);

三、代码实战

1. 建表结构

CREATE TABLE `user` (
    `id` bigint(20) NOT NULL COMMENT '主键ID',
    `name` varchar(30) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',
    `age` int(11) DEFAULT NULL COMMENT '年龄',
    `email` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

2. Bean

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

3. Mapper代码

Mapper �接口绑定实现方式(三种)? 本例使用第二种。

  • 1.通过 XML Mapper 里面写 SQL 来绑定。
  • 2.通过注解绑定,就是在接口的方法上面加上 @Select、@Update、@Insert、@Delete 注解。
  • 3.通过注解绑定,在接口的方法上面加上 @SelectProvider、@UpdateProvider、@InsertProvider、@DeleteProvider 注解,通过 Java 代码,生成对应的动态 SQL

public interface OrignUserMapper {

    @Select(" select name from user where id = #{l}  ")
    User selectById(long l);

    @Insert(" insert into `user_center`.`user` ( `id`,  `age`, `email`, `name`) values (#{id}, #{age}, #{email}, #{name}); ")
    long insert(User user);
}

4. 测试类

/**
 * @ClassName : MybatisTest
 * @Description : 手动获取mapper测试
 * @Author : hack2012
 * @Date: 2020-12-18 04:24
 */
public class MybatisTest {

    @Test
    public void testConnect(){
        //1. 配置mybatis
        Configuration configuration = configuration();

        //2. 获取SqlSessionFactory
        SqlSessionFactory sessionFactory = new DefaultSqlSessionFactory(configuration);

        //3. 获取Session
        SqlSession sqlSession = sessionFactory.openSession(true);

        //4. 获取Mapper
        OrignUserMapper mapper = sqlSession.getMapper(OrignUserMapper.class);


        long id = 2l;
        User user = new User();
        user.setId(id);
        user.setName("name1");
        user.setAge(20);
        user.setEmail("aaaa@aa.com");
        long insert = mapper.insert(user);
        System.out.println(insert);

        User user_new = mapper.selectById(id);
        System.out.println(user_new);
    }

    private Configuration configuration(){
        Configuration configuration = new Configuration();//new MybatisConfiguration();


        //1. 设置环境配置
        configuration.setEnvironment(getEnv());
        //2. 添加mapper映射
        configuration.addMapper(OrignUserMapper.class);

        //设置下划线转驼峰命名
//        configuration.setMapUnderscoreToCamelCase(true);

        return configuration;
    }

    //初始化环境配置
    public Environment getEnv(){
        TransactionFactory transFactory = new JdbcTransactionFactory();
        MysqlDataSource datasource = new MysqlDataSource();
        datasource.setUrl("jdbc:mysql://xxxxxxxx:13306/user_center?&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false");
        datasource.setUser("root");
        datasource.setPassword("xxxxxxxxxxxxxxx");
        return  new Environment("did", transFactory, datasource);
    }
}

相关文章

  • 101.Mybatis 编程使用流程

    一、流程模板 三、代码实战 1. 建表结构 2. Bean 3. Mapper代码 Mapper �接口绑定实现方...

  • 光立方模拟程序【processing篇】

    编程环境 Processing编程软件 PeasyCam 库(用于控制摄像机) 总体流程 程序大概流程 工作命令 ...

  • 面向流程框架的设计

    面向流程的编程思想有了 (详情见面向流程编程[https://www.jianshu.com/p/eafd0ebb...

  • 【Uipath】如何添加字典以及字典的用法

    需求:在编程过程中我们希望将一些值另存为key/value,以便后续流程使用。 字典(Dictionary): ...

  • 部署

    部署 以编程方式部署 外部资源 流程定义存在于Flowable数据库中。 当使用 Service Tasks或者e...

  • # shell流程控制语句

    shell流程控制语句 任何编程语言都离不开流程控制语句,其实编程基本上就是掌握了流程控制语句,然后加上函数(或者...

  • 编程入门05:Python流程控制

    上一篇:编程入门04:Python第三方包 编程时可以使用三种流程结构:按照先后顺序执行全部指令,是最普通的“顺序...

  • LED力CONNX焊线编程流程

    1.开机流程 2.参数编程 3.编程流程 焊线参数基本要点 焊线通嘴 点胶细节参数

  • 回调--CallBack

    回调是一个编程技巧,用于解决顺序流程无法解决或者说使用顺序流程来解决会十分麻烦的问题 比如: 场景一:在打游戏的时...

  • 什么是编程思维?

    什么是编程思维? 编程=分解+流程化+自动执行大多数人做不好的是分解和流程化,而还没轮到去做自动执行这一步。编程思...

网友评论

    本文标题:101.Mybatis 编程使用流程

    本文链接:https://www.haomeiwen.com/subject/hvztnktx.html