项目实战使用的技术是spring boot ,mybatis,druid

mybatis采用注解的方式,没有采用xml的方式,省去配置的内容。

项目使用maven管理依赖包,数据库使用mysql5.7

  1. 引入依赖:

    <!--mybatis的包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version>
    </dependency><!--druid数据库连接池的包-->
    <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version>
    </dependency><!--mysql数据库驱动的包-->
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>6.0.6</version>
    </dependency>
  2. 项目配置文件
    #DB数据源配置
    spring.datasource.druid.initial-size=1
    spring.datasource.druid.min-idle=3
    spring.datasource.druid.max-active=20
    #配置获取连接等待超时的时间
    spring.datasource.druid.max-wait=60000
    #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    spring.datasource.druid.time-between-eviction-runs-millis=60000
    #配置一个连接在池中最小生存的时间,单位是毫秒
    spring.datasource.druid.min-evictable-idle-time-millis=300000
    spring.datasource.druid.stat-view-servlet.login-username=admin
    spring.datasource.druid.stat-view-servlet.login-password=admin
    spring.datasource.druid.one.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.druid.one.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.druid.one.url=jdbc:mysql://mysql:3306/seasfood?characterEncoding=utf8&useSSL=true&serverTimezone=PRC&nullNamePatternMatchesAll=true
    spring.datasource.druid.one.username=root
    spring.datasource.druid.one.password=123456
    需要配置数据库的地址和密码,这个例子仅对druid做了简单的配置,更多优化配置到druid官网查看

  3. 项目数据源配置,这里没有读写分离的数据源配置,编写一个spring配置类:

      @Configuration("DaoConfiguration")@EnableTransactionManagementpublic class DaoConfiguration {@Primary@Bean@ConfigurationProperties("spring.datasource.druid.one")public DataSource dataSourceOne() {return DruidDataSourceBuilder.create().build();}@Beanpublic DataSourceTransactionManager dataSourceTransactionManager() {return new DataSourceTransactionManager(dataSourceOne());}
    }
  4. 编写一个mapper接口,必须在spring能够扫描到的包下

    @Mapper
    public interface GoodsMapper {@Select("SELECT * FROM goods")List<GoodsEntity> selectGoods(@Param("now") Date date);
    }
  5. 在service组件中注入mapper接口即可使用

    @Autowired
    private GoodsMapper mapper;
    mapper.selectGoods();
  6. mybatis的高级用法:
    1: 动态sql语句,通过增加<script></script>来让sql语句可以根据条件增加WHERE,AND,OR,IN等内容
    2:结果集缓存:一般不用,都是在service层做cache处理
    3:类型处理器TypeHandler:用于把一些特殊的列的值转换成特殊的字段,例如把逗号或者其他分隔符分隔的值转换成List
    4:拦截器:用来做一些特殊的处理,例如分页

删除记录:
@Delete("DELETE FROM mytable WHERE id=#{}")
更新记录:
@Update("UPDATE mytable SET myname=#{myname}")
插入记录:
@Insert("INSERT INTO mytable (myfield1,myfield2) VALUES (#{var1},#{var2})

-

使用@SelectKey获取自增主键的值:
@SelectKey(statement = "select max(addr_id)+1 as id from user_address", before = true, keyColumn = "id", resultType = String.class, keyProperty = "addr_id")

使用注解时,Mapper中的queryId:
使用注解的方法名作为queryId,如果方法名相同的,其中一个会以方法名作为queryId,而其他的则会以类全名加方法名作为queryId

转载于:https://blog.51cto.com/13860853/2361813

mybatis实战总结相关推荐

  1. mybatis实战教程(mybatis in action),mybatis入门到精通

     目录(?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程 ...

  2. 【实战】Spring+Spring MVC+Mybatis实战项目之云笔记项目

    [实战]Spring+Spring MVC+Mybatis实战项目之云笔记项目 一.项目简介           1.项目概述 云笔记,是tmocc上的一个子项目,用于客户进行在线学习记录,分享,收藏 ...

  3. MyBatis实战【上】

    MyBatis 主要内容 Mybatis 入门 Mybatis 的基本使用 J ava 日志处理框架 Mybatis 配置完善 SqlSession 常用 API Mapper 动态代理 动态 SQL ...

  4. MyBatis实战——前身iBatis、基础环境搭建和如何钓鱼

    (一)前身iBatis 网上发现MyBatis书很少,因为旧项目用到的是ibatis,所以先大致过了iBatis,因为太老,所以基本上讲解的东西好少,但是还有<iBatis实战>这本书,再 ...

  5. 首发 阿里P8整理万字MyBatis实战笔记,精简易懂,开源免费下载

    MyBatis作为国内经常使用的持久层框架,其内部代码的设计非常优秀.比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性.低耦合性的代码,便 ...

  6. 快速学习MyBatis|实战项目详解

    作者主页:橙子! 主页 系列专栏:JavaWeb基础教程系列 精彩回顾:HTTP协议详解 文章目的:快速学习MyBatis及实战项目详解 文章目录 1.什么是MyBatis? 2. JDBC存在的缺点 ...

  7. mybatis实战教程(mybatis in action),mybatis入门到精通(转)

    写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来 ...

  8. 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句

    转自:除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! 转载地址:http://blog.csdn.net/kutejava/article/details/9164353#t5 1. if ...

  9. mybatis实战教程(mybatis in action)之二:以接口的方式编程

    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selec ...

最新文章

  1. 同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay
  2. ultraedit怎么配置java_【转】UltraEdit配置java环境
  3. Class.getResource和ClassLoader.getResource
  4. 分区表分区字段的update操作
  5. 2013年蓝桥杯模拟赛答案
  6. 常用浏览器的编码设置
  7. 724. 寻找数组的中心索引
  8. Android文件夹占用空间分析,关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析...
  9. 990.00 php,一键自动采集 体育赛事 直播网站。仿直播吧源码、仿篮球直播源码、NBA直播源码 视频网站...
  10. 人人商城数据字典---链接内容
  11. 手机端python_python 判断请求是pc端还是手机端
  12. FLASH中打开网页链接,本地打不开的问题。
  13. 目前可以用的短信验证码平台有哪些?
  14. Google Scholar 谷歌学术文献检索技巧总结
  15. 回归分析beta值的标准_标准回归系数引用
  16. 根据单头价格清单(核价单),更新单身出货明细的单价
  17. 返回上一页,ajax读出来的数据丢失。
  18. Android 高仿微信群聊头像
  19. 香港地图、行政区划地图辖区边界、沙田
  20. python交互式和文件式区别_Python 运行.py文件和交互式运行代码的区别详解

热门文章

  1. Jfinal中Cron4jPlugin使用
  2. [VB]在状态栏中显示帮助信息
  3. Qt第一印象——Qte与Qt
  4. 程序猿,这里有你想学的10门机器学习课程 | 资源
  5. 更快更高更强大,这是英特尔AI助力长城修缮的新进展
  6. Waymo无人车,每天能绕地球一圈
  7. 谷歌发布轻量级视觉架构MobileNetV2,速度快准确率高
  8. 联想高校AI精英挑战赛总冠军出炉!助力中国迎来智能变革
  9. 麦肯锡160页报告:2030年全球将可能有8亿人要被机器抢饭碗
  10. 新AlphaGo这么强!36小时从0自学成大师,100:0把李世乭版秒成渣渣 | Nature论文