精华内容
下载资源
问答
  • TKMybatis和Mybatis Plus 哪个用起来更好? 各自的优缺点是什么?
  • 一、tk mybatis 1、引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </...

    一、tk mybatis

    1、引入依赖

    <dependency>
    	<groupId>tk.mybatis</groupId>
    	<artifactId>mapper-spring-boot-starter</artifactId>
    	<version>2.0.2</version>
    </dependency>
    

    2.注解

    	@Table(name = "bill_")//要和数据库里的表名一样
    	@Id//标注主建
        @GeneratedValue(strategy = GenerationType.IDENTITY)//主键策略
        @Column(name = "id_") //列要和数据库名字里的一样,支持驼峰命名
    	@Transient //表示该属性不是数据库里的
    

    3.mapper方法

    /*使用mapper来对数据库进行操作,注意要导入tk.mybatis.mapper.common.Mapper的包*/
    import tk.mybatis.mapper.common.Mapper;
    
    import java.util.List;
    
    public interface BillMapper extends Mapper<Bill> {
       
    }
    
    方法 说明
    List select(T record) 根据实体中的属性值进行查询,查询条件使用等号
    T selectByPrimaryKey(Object key) 根据主键字段进行查询,方法参数必须包含完整的主键属性,
    List selectAll() 查询全部结果,select(null)方法能达到同样的效果
    T selectOne(T record) 根据实体中的属性进行查询,只能有一个返回值,多个则抛出异常
    int selectCount(T record); 根据实体中的属性查询总数,
    int insert(T record) 保存一个实体,null的属性也会保存,不会使用数据库默认值
    int updateByPrimaryKey(T record) 根据主键更新实体全部字段,null值会被更新
    int updateByPrimaryKeySelective(T record) 根据主键更新属性不为null的值
    int delete(T record) :根据实体属性作为条件进行删除
    int deleteByPrimaryKey(Object key) 根据主键字段进行删除,方法参数必须包含完整的主键属性
    List selectByExample(Object example) 根据Example条件进行查询 重点
    int selectCountByExample(Object example) 根据Example条件进行查询总数
    int updateByExample(@Param(“record”) T record, @Param(“example”) Object example) 根据Example条件更新实体 record 包含的全部属性,null值会被更新
    int deleteByExample(Object example) 根据Example条件删除数据

    4.启动类

    import tk.mybatis.spring.annotation.MapperScan;
    @SpringBootApplication
    @EnableConfigurationProperties
    @MapperScan("com.lxs.demo.dao")
    public class Application {
    

    二、Thymeleaf

    1.引入依赖

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    

    2.配置

    spring:
    	thymeleaf:
    	    cache: false //关闭模板缓存
    	    prefix: classpath:/templates/
    	    suffix: .html
    
    注意,把html 的名称空间,改成: xmlns:th="http://www.thymeleaf.org" 会有语法提示
    

    3.常用语法

    <body>
    <div style="text-align: center">
    	<span style="color: darkslategray; font-size: 30px">欢迎光临!</span>
    <hr/>
    <table class="list">
    	<tr>
    		<th>id</th>
    		<th>姓名</th>
    		<th>用户名</th>
    		<th>年龄</th>
    		<th>性别</th>
    		<th>生日</th>
    		<th>备注</th>
    		<th>操作</th>
    	</tr>
    <tr th:each="user, status : ${users}" th:object="${user}">//遍历集合,先用${}表达式来取出user,使用*{}则要用th:object="${user}"
    	<td th:text="${user.id}">1</td>
    	<td th:text="*{name}">张三</td>
    	<td th:text="*{userName}">zhangsan</td>
    	<td th:text="${user.age}">20</td>
    	<td th:text="${user.sex} == 1 ? '男': '女'"></td>
    	<td th:text="${#dates.format(user.birthday, 'yyyy-MM-dd')}">1980-02-30</td>//日期转换的方法
    	<td th:text="${user.note}">1</td>
    	<td>
    		<a th:href="@{/delete(id=${user.id}, userName=*{userName})}">删除</a> //url表达式
    		<a th:href="|/update/${user.id}|">修改</a>  //文本替换
    		<a th:href="'/approve/' + ${user.id}">审核</a> //字符串拼接
    	</td>
    </tr>
    </table>
    

    4.常用的th标签

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    5.内联js

    内联文本:[[…]]内联文本的表示方式,使用时,必须先用th:inline=”text/javascript/none”激活,th:inline可以在父级标签内使用,甚至作为body的标签

    <h5>内联js</h5>
    <script th:inline="javascript">
    /*<![CDATA[*/
    var text = '[[${text}]]';
    alert(text);
    /*]]>*/
    </script>
    

    6.内嵌变量

    在这里插入图片描述

    <h5>内置变量</h5>
    <h6 th:text="${#dates.createNow()}">获取当前日期</h6>
    <h6 th:text="${#dates.createNow()}">获取当前日期</h6>
    <h6 th:text="${#strings.substring(text, 6, 9)}">截取字符串</h6>
    <h6 th:text="${#strings.length(text)}">获得长度</h6>
    <h6 th:text="${#strings.randomAlphanumeric(6)}">随机字符串</h6>
    <h6 th:text="${#strings.equals(text, 'hello text....')}"></h6>
    

    三、Mybatis Plus

    Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变。

    1.引入依赖

    <dependency>
    	<groupId>com.baomidou</groupId>
    	<artifactId>mybatis-plus-boot-starter</artifactId>
    	<version>${mybatisplus.version}</version>
    </dependency>
    	//引用了这个不用写get、set方法,在实体类加上@Data注解
    <dependency>
    	<groupId>org.projectlombok</groupId>
    	<artifactId>lombok</artifactId>
    	<scope>provided</scope>
    </dependency>
    
    <build>
    	<plugins>
    		<plugin>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-maven-plugin</artifactId>
    		</plugin>
    	</plugins>
    </build>
    

    2.启动类

    @SpringBootApplication
    @MapperScan("com.lxs.quickstart.mapper")
    public class QuickstartApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(QuickstartApplication.class, args);
    	}
    }
    

    3.dao方法

    public interface UserMapper extends BaseMapper<User> {
    }
    

    4.常用注解

    在这里插入图片描述

    //如果mysql自增主键注解策略设置如下
    @TableId(type = IdType.AUTO)
    private Long id;
    
    //排除实体类中非表字段
    @TableField(exist = false) 
    

    在这里插入图片描述

    5.内置增删改查

    @Test
    public void testInsert() {
    	User user = new User();
    	user.setName("开吧");
    	user.setEmail("ls@163.com");
    	user.setAge(3);
    	Assert.assertTrue(mapper.insert(user) > 0);
    	mapper.selectList(null).forEach(System.out :: println);
    }
    @Test
    public void testDelete() {
    	// //主键删除
    	// mapper.deleteById(3l);
    	// mapper.selectList(null).forEach(System.out :: println);
    	// //批量删除:1
    	// mapper.delete(new QueryWrapper<User>().like("name", "J"));
    	// mapper.selectList(null).forEach(System.out :: println);
    	// //批量删除:2
    	// mapper.delete(Wrappers.<User>query().like("name", "J"));
    	// mapper.selectList(null).forEach(System.out :: println);
    //批量删除:2
    	mapper.delete(Wrappers.<User>query().lambda().like(User::getName, "J"));
    	mapper.selectList(null).forEach(System.out :: println);
    }
    @Test
    public void testUpdate() {
    	// //基本修改
    	// mapper.updateById(new User().setId(1l).setName("慧科"));
    	// mapper.selectList(null).forEach(System.out :: println);
    	// //批量修改:1
    	// mapper.update(null, Wrappers.<User>update().set("email", "huike@163.com").like("name",
    	"J"));
    	// mapper.selectList(null).forEach(System.out :: println);
    	//批量修改:2
    	mapper.update(new User().setEmail("huike@163.com"), Wrappers.<User>update().like("name",
    	"J"));
    	mapper.selectList(null).forEach(System.out :: println);
    }
    @Test
    public void testSelect() {
    	// //基本查询
    	// System.out.println(mapper.selectOne(Wrappers.<User>query().eq("name", "Tom")));
    	//投影查询
    	mapper.selectList(new QueryWrapper<User>().select("id", "name")).forEach(user -> {
    	System.out.println(user);
    	});
    }
    

    6.内置分页

    写配置类

    @Configuration
    public class MybatisPlusConfig {
    	/**
    	* 分页插件
    	*/
    	@Bean
    	public PaginationInterceptor paginationInterceptor() {
    	// 开启 count 的 join 优化,只针对 left join !!!
    		return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true));
    	}
    }
    
    @Test
    public void testPage() {
    	System.out.println("------ baseMapper 自带分页 ------");
    	Page<User> page = new Page<>(1, 5);
    	IPage<User> pageResult = mapper.selectPage(page, new QueryWrapper<User>().eq("age", 20));
    	System.out.println("总条数 ------> " + pageResult.getTotal());
    	System.out.println("当前页数 ------> " + pageResult.getCurrent());
    	System.out.println("当前每页显示数 ------> " + pageResult.getSize());
    	pageResult.getRecords().forEach(System.out :: println);
    }
    

    7.配置

    # 配置mybatis plus
    mybatis-plus:
    	type-aliases-package: com.lxs.crud.entity #别名搜索
    	mapper-locations: classpath:/mappers/*.xml #加载映射文件
    

    7.pageHelper分页

    引入依赖

    <dependency>
    	<groupId>com.github.pagehelper</groupId>
    	<artifactId>pagehelper</artifactId>
    	<version>5.1.11</version>
    </dependency>
    

    配置类

    @Configuration
    @MapperScan("com.lxs.mybatisplus.samples.crud.mapper")
    public class MybatisPlusConfig {
    	/**
    	* mp分页插件
    	*/
    	@Bean
    	public PaginationInterceptor paginationInterceptor() {
    	// 开启 count 的 join 优化,只针对 left join !!!
    	return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true));
    	}
    	/**
    	* 两个分页插件都配置,不会冲突
    	* pagehelper的分页插件
    	*/
    	@Bean
    	public PageInterceptor pageInterceptor() {
    	return new PageInterceptor();
    }
    

    使用方法

    PageInfo<User> page = PageHelper.startPage(1, 2).doSelectPageInfo(() ->
    mapper.selectList(Wrappers.<User>query()));
    PageHelper.startPage(1,2);
    // PageInfo<User> page = new PageInfo<>(mapper.selectList(Wrappers.<User>query()));
    User u = new User();
    u.setAge(20);
    PageInfo<User> page = new PageInfo<User>(mapper.selectUserByPage2(u))
    
    展开全文
  • 一、什么是 TKMybatis TKMybatis 是基于 Mybatis 框架开发的一个工具,内部实现了对单表的基本数据操作,只需要简单继承 TKMybatis 提供的接口,就能够实现无需编写任何 sql 即能完成单表操作。 二、 TKMybatis ...

    目录

    一、什么是 TKMybatis

    二、TKMybatis 使用

    2.1 Springboot 项目中加入依赖

    2.2 使用讲解

    2.2.1 实体类中使用

    2.2.2 dao中使用

    2.2.3 Service 层中使用

    2.3 实际案例

    2.3.1 dao 层使用

    2.3.2 service 层使用


    一、什么是 TKMybatis

    TKMybatis 是基于 Mybatis 框架开发的一个工具,内部实现了对单表的基本数据操作,只需要简单继承 TKMybatis 提供的接口,就能够实现无需编写任何 sql 即能完成单表操作。

     

    二、TKMybatis 使用

    2.1 Springboot 项目中加入依赖

    <!--通用mapper起步依赖-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.0.4</version>
    </dependency>

    在 POJO 类中加入依赖

    <!--每个工程都有Pojo,都需要用到该包对应的注解-->
    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0</version>
        <scope>compile</scope>
    </dependency>

    在启动类中配置 @MapperScan 扫描

    @SpringBootApplication
    @MapperScan(basePackages = {"com.tom.order.mapper"})
    public class OrderApplication {
        public static void main(String[] args) {
            SpringApplication.run(OrderApplication.class, args);
        }
    }
    

     

    2.2 使用讲解

    2.2.1 实体类中使用

    在实体类中,常用的注解和意义为:

    @Table:描述数据库表信息,主要属性有name(表名)、schema、catalog、uniqueConstraints等。

    @Id:指定表主键字段,无属性值。

    @Column:描述数据库字段信息,主要属性有name(字段名)、columnDefinition、insertable、length、nullable(是否可为空)、precision、scale、table、unique、updatable等。

    @ColumnType:描述数据库字段类型,可对一些特殊类型作配置,进行特殊处理,主要属性有jdbcType、column、typeHandler等。

    其他注解如:@Transient、@ColumnResult、@JoinColumn、@OrderBy、@Embeddable等暂不描述

     

    2.2.2 dao中使用

    单表操作,只需要继承 tk.mybatis 下的 Mapper 接口即可使用

    import tk.mybatis.mapper.common.Mapper;
    
    @Repository
    public interface BrandMapper extends Mapper<Brand> {
    }

    查看具体使用:内部都已经封装了基本的单表操作

     

    2.2.3 Service 层中使用

    操作 类型 介绍
    增加 Mapper.insert(record); 保存一个实体,null的属性也会保存,不会使用数据库默认值
    Mapper.insertSelective(record); 保存一个实体,忽略空值,即没提交的值会使用使用数据库默认值
     
    删除 Mapper.delete(record); 根据实体属性作为条件进行删除,查询条件使用等号
    Mapper.deleteByExample(example) 根据Example条件删除数据
    Mapper.deleteByPrimaryKey(key) 根据主键字段进行删除,方法参数必须包含完整的主键属性
     
    修改 Mapper.updateByExample(record,example) 根据Example条件更新实体`record`包含的全部属性,null值会被更新
    Mapper.updateByExampleSelective(record, example) 根据Example条件更新实体`record`包含的不是null的属性值
    Mapper.updateByPrimaryKey(record) 根据主键更新实体全部字段,null值会被更新
    Mapper.updateByPrimaryKeySelective(record) 根据主键更新属性不为null的值
     
    查询 Mapper.select(record) 根据实体中的属性值进行查询,查询条件使用等号
    Mapper.selectAll() 查询全部结果
    Mapper.selectByExample(example) 根据Example条件进行查询
    Mapper.selectByPrimaryKey(key) 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
    Mapper.selectCount(record) 根据实体中的属性查询总数,查询条件使用等号
    Mapper.selectCountByExample(example) 根据Example条件进行查询总数
    Mapper.selectOne(record)

    根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号。

    但是如果存在某个属性为int,则会初始化为0。可能影响到实际使用

     

    2.3 实际案例

    2.3.1 dao 层使用

    
    import tk.mybatis.mapper.common.Mapper;
    
    /**
     * DAO 使用通用Mapper
     * DSO接口需要继承 tk.mybatis.mapper.common.Mapper
     */
    @Repository
    public interface BrandMapper extends Mapper<Brand> {
    
    
    }

     

    2.3.2 service 层使用

    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.apache.commons.lang.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import tk.mybatis.mapper.entity.Example;
    
    import java.util.List;
    
    @Service
    public class BrandServiceImpl implements BrandService {
    
        @Autowired
        private BrandMapper brandMapper;
    
        public Example createExample(Brand brand) {
            // 自定义条件搜索对象 Example
            Example example = new Example(Brand.class);
            Example.Criteria criteria = example.createCriteria(); //条件构造器
    
            if (brand != null) {
                if (!StringUtils.isEmpty(brand.getName())) {
                    criteria.andLike("name", '%' + brand.getName() + '%');
                }
    
                if (!StringUtils.isEmpty(brand.getLetter())) {
                    criteria.andEqualTo("letter", brand.getLetter());
                }
            }
            return example;
        }
    
        @Override
        public List<Brand> findAll() {
            return brandMapper.selectAll();
        }
    
        @Override
        public List<Brand> findList(Brand brand) {
            Example example = createExample(brand);
            return brandMapper.selectByExample(example);
        }
    
        @Override
        public Brand findById(Integer id) {
            return brandMapper.selectByPrimaryKey(id);
        }
    
        /**
         * 分页查询
         * @param page  当前页
         * @param size  每页显示的条数
         * @return
         */
        @Override
        public PageInfo<Brand> pageSearch(Integer page, Integer size) {
            // 分页实现
            // 后面的查询必须是紧跟集合查询
            PageHelper.startPage(page, size);
            // 查询集合
            List<Brand> brands = brandMapper.selectAll();
            return new PageInfo<Brand>(brands);
        }
    
        @Override
        public PageInfo<Brand> pageSearchAndCondition(Brand brand, Integer page, Integer size) {
            // 开始分页
            PageHelper.startPage(page, size);
            // 搜索数据
            Example example = createExample(brand);
            List<Brand> list = brandMapper.selectByExample(example);
            return new PageInfo<Brand>(list);
        }
    
        /**
         * 增加品牌
         * @param brand
         */
        @Override
        public void add(Brand brand) {
            // 使用通用 Mapper.insertSelective
            // 方法中但凡带有selective就会忽略空值
            int i = brandMapper.insertSelective(brand);
        }
    
        /**
         * 根据id修改品牌
         * @param brand
         */
        @Override
        public void update(Brand brand) {
            // 使用通用mapper.update();
            brandMapper.updateByPrimaryKeySelective(brand);
        }
    
        /**
         * 根据id删除
         * @param id
         */
        @Override
        public void del(Integer id) {
            brandMapper.deleteByPrimaryKey(id);
        }
    }
    

     

    三、扩展介绍

    https://juejin.im/post/5cbfd158f265da038860b82f

     

     

     

    展开全文
  • TKmybatis和mybatisplus哪个好用

    万次阅读 2019-06-10 14:54:32
    文档连接 :http://baomidou.oschina.io/mybatis-plus-doc/#/?id=%E7%AE%80%E4%BB%8B https://gitee.com/hengboy/mybatis-enhance https://gitee.com/free/Mapper/wikis/1.3-...

     文档连接 :http://baomidou.oschina.io/mybatis-plus-doc/#/?id=%E7%AE%80%E4%BB%8B

                        https://gitee.com/hengboy/mybatis-enhance

                        https://gitee.com/free/Mapper/wikis/1.3-spring-boot?sort_id=208198

                        https://durcframework.gitee.io/fastmybatis/

    注: mybatis-enhance也同样可以跟相同namespace的mapper.xml自动合并

    展开全文
  • 版本信息:springboot 2.0,mybatis 3.4.6 , tkmybatis 2.0 ,activiti 6.0今天在集成项目的时候,发现mybatis和activiti集成时不会报错,但是mapper和activiti集成到一起时启动就会报错,错误信息如下:Parameter 1 ...

    版本信息:springboot 2.0,mybatis 3.4.6 , tkmybatis 2.0 ,activiti 6.0

    今天在集成项目的时候,发现mybatis和activiti集成时不会报错,但是mapper和activiti集成到一起时启动就会报错,错误信息如下:

    Parameter 1 of method springProcessEngineConfiguration in org.activiti.spring.boot.JpaProcessEngineAutoConfiguration$JpaConfiguration required a bean of type 'javax.persistence.EntityManagerFactory' that could not be found.

    于是查看了一下JpaProcessEngineAutoConfiguration类,部分代码如下:

    public class JpaProcessEngineAutoConfiguration {
        public JpaProcessEngineAutoConfiguration() {
        }
    
        @Configuration
        @ConditionalOnClass(
            name = {"javax.persistence.EntityManagerFactory"}
        )
        @EnableConfigurationProperties({ActivitiProperties.class})
        public static class JpaConfiguration extends AbstractProcessEngineAutoConfiguration {
            public JpaConfiguration() {
            }
        }
    }

    可以看到EntityManagerFactory是被@ConditionlOnClass所注解的。而EntityManagerFactory是来自于JPA相关的接口。其实这里是Activiti所做的判断,如果项目使用了JPA,那走JPA,如果没有,则走Mybatis。所以只引入Mybatis和Activiti的话项目不会报错,那为什么引入了Mapper就会报错呢?

    继续看mapper的源码就能知道原因,其实mapper并没有实现EntityManagerFactory接口,而是自己写了一套,而在Activiti中则认为当前项目使用的是JPA,找不到EntityManagerFactory的实现类。所以报错。解决方法就是在mapper中移除对persistence-api依赖,在activiti中加上jpa的依赖。这样的话,项目启动不会报错,并且能正常使用tkmybatis,省去了公共的增删改查代码。

    修改后的pom.xml如下:

            <!-- 集成tk-mapper -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>${tk.mapper.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>persistence-api</artifactId>
                        <groupId>javax.persistence</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- activiti -->
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring-boot-starter-basic</artifactId>
                <version>${activiti.version}</version>
            </dependency>
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring-boot-starter-jpa</artifactId>
                <version>${activiti.version}</version>
            </dependency>

    其他的配置按照mapper和activiti官网上的来就OK了。



    展开全文
  • Spring Boot 系列分享二[整合tkmybatis和lombok]1. 整合lombok1.1 idea中配置支持lombok1.2 配置主目录下的build.gradle2. 整合tk-mybatis2.1 新建模块并添加依赖2.2 整合通用Mapper接口3. 进行简单的整合测试3.1 ...
  • 1 mybatis-generator可以自动...TKmybatis提供一种通用mapper,它不需要针对每个mapper写sql语句,只需继承通用mapper调用相应的接口来完成单表的增删改查。 配置步骤: 1.pom文件中增加代码: <dependency>
  • 一.TKMybatis 1.依赖 <!--mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </depend...
  • 原标题:SpringBoot使用MyBatis+Tkmybatis+Druid步骤 全部介绍MyBatis+Tkmybatis+Druid:MyBatis:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码...
  • tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具实现对员工表的增删改查的代码java的dao层...
  •  mybatis-generator可以自动生成mapperentity文件,mybatis-generator有三种用法:命令行、eclipse插件、maven...TKmybatis提供一种通用mapper,它不需要针对每个mapper写sql语句,只需继承通用mapper调用相应的
  • tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源...
  • SpringBoot使用MyBatis+Tkmybatis+Druid步骤全部介绍MyBatis+Tkmybatis+Druid:MyBatis:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码手动设置...
  • 涉及到的工具有DateUtil,MD5Utils,n3r,tkMyBatis Mapper类由MyBatis逆向生成工具生成,实现了通用Mapper接口类,所以在调用相关CRUD方法时要根据tkMyBatis相关规则 ServiceController编写如下 UserServiceImpl ...
  • tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具实现对员工表的增删改查的代码 java的dao层...
  • 一、tkmybatistkmybatis 是基于 mybatis 框架开发的一个工具,通过调用它提供的方法实现...1. 引用在 pom.xml 中引入 tk.mybatis 的引用。tk.mybatismapper-spring-boot-starter2.1.52. do 对象@table(name = "t_pl...
  • 基于前一个博客搭建的SSM框架 ... 源码:... 实现基于oracle数据库集成tkmybatis gengerator自动生成代码 先看下完成之后的目录结构 首先pom.xml里面引入相应的包插件 ...
  • springboot引入mybatis和tkMybatis启动报反射异常错误。。错误如下: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException Caused by: java.lang.reflect.InvocationTargetException: null ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 464
精华内容 185
关键字:

tkmybatis和mybatis