MyBatis

maven学习(3)-Maven 核心技术

谁说胖子不能爱 提交于 2020-05-03 20:18:11
第一节:Maven 仓库概念 Maven 远程仓库配置文件: $M2_HOME/lib/maven-model-builder-3.3.3.jar 文件:org\apache\maven\model\pom-4.0.0.xml < repositories > < repository > < id > central </ id > < name > Central Repository </ name > < url > https://repo.maven.apache.org/maven2 </ url > < layout > default </ layout > < snapshots > < enabled > false </ enabled > </ snapshots > </ repository > </ repositories > 可以看到是从这里找的: https://repo.maven.apache.org/maven2/ 第二节:Maven 依赖特性 依赖传递和依赖选择: user-service依赖于spring-core,spring-core依赖于commons-logging,user-service也就依赖于commons-logging A->B->-C->X,A依赖X,路径为三层,A->D->X,A也依赖X,路径为两层

记一次MyBatis分页插件使用时遇到的问题

孤人 提交于 2020-05-03 17:40:22
问题描述 在使用 Mybatis-PageHelper 进行分页的时候,查询出来的结果集是一个嵌套的结果,此时发现查询出来的记录数与设置的 pagesize 明显不符合。 问题还原 我的 mapper 实现时这么写的 , <resultMap id="myOrdersVo" type="com.cjervin.vo.MyOrdersVO"> <id column="orderId" property="orderId"/> <result column="createdTime" property="createdTime"/> <result column="payMethod" property="payMethod"/> <result column="realPayAmount" property="realPayAmount"/> <result column="postAmount" property="postAmount"/> <result column="orderStatus" property="orderStatus"/> <result column="isComment" property="isComment"/> <collection property="subOrderItemList" ofType="com.cjervin.vo

做了5年的Android,我转Java后台了!

只愿长相守 提交于 2020-05-02 17:41:03
很多人做Java开发4,5年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习架构原理,也没人教,所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要。 同样公司的两个新人,一个新人一点就通,学东西很快,有的人,学东西很慢,也很痛苦,处处都是新技术。为什么?因为那个人懂原理,万物都有规律,掌握了规律学其他东西原理相通,一触就会,不懂原理就会处处碰壁,学习很慢还很折磨。 很多程序员会有一个苦恼,工作了很久,在公司一味的增删改查,得不到技术的提高,无缘底层代码,只会用不知其原理!有不少朋友问,如何深入学习Java后端技术栈, 今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及开发工具包,【 戳我进入 】学习裙。 一、阅读源码 深入的Java学习,经典源码阅读不可少: 常见的设计模式,编码必备 Spring5,做应用必不可少的最新框架 MyBatis,玩数据库必不可少的组件 画外音:大家扪心自问,除了写业务代码,看过多少优秀开源代码? 二、分布式架构 随着业务越来越复杂,数据量越来越大,并发量越来越大,单体的架构模式显然再也无法对应,作为Java后端架构师,高并发+高可用+海量数据的分布式架构体系,是必不可少的: 分布式架构原理 分布式架构策略

springboot + mybatis 的项目,实现简单的CRUD

限于喜欢 提交于 2020-05-02 17:01:19
以前都是用Springboot+jdbcTemplate实现CRUD 但是趋势是用mybatis,今天稍微修改,创建springboot + mybatis 的项目,实现简单的CRUD 上图是项目的目录结构,创建一个user实体,包含id,姓名,手机,密码,flag等信息,然后对用户进行增删查改。 drop table if exists user; CREATE TABLE `user` ( id tinyint(4) NOT NULL AUTO_INCREMENT, name varchar(200) NOT NULL, age int(11) NOT NULL,、 phone varchar(20) NOT NULL, password varchar(20) NOT NULL, flag int(4), PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;   用Intellij IDEA进行开发,创建一个新的springboot项目,选中SQL中的mybaits,生成之后默认带有DemoApplication主函数启动类,最后启动的时候要在主函数上添加mapper扫描@MapperScan("com.example.demo.mapper") //扫描全部mapper

08 SSM整合案例(企业权限管理系统):10.权限关联与控制

烂漫一生 提交于 2020-05-02 10:36:38
04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.权限控制 09.用户操作 10.权限关联与控制 11.AOP日志 10.权限关联与控制 1.用户关联角色操作-流程分析 项目运行的网络环境发生变化后,实际上就是我笔记本电脑 所连接到的路由器发生变更。需要用cmd下的ipconfig命令查看当前主机IP地址,然后去web子模块项目的resources目录下把jdbc.properties配置文件的 jdbc.url=jdbc:oracle:thin:@192.168.0.108:1521:orcl 做修改后重新install一下WEB项目再测试就跑通了。 2.用户关联角色操作 视图层的UsersControler // 查询用户以及可以添加的角色 @RequestMapping("/findUserByIdAndAllRole.do" ) public ModelAndView findUserByIdAndAllRole(@RequestParam(name = "id") String userId) throws Exception{ ModelAndView mv = new ModelAndView(); // 1.根据一个用户ID查询结果 UserInfo userInfo = userService.findById

SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式

本秂侑毒 提交于 2020-05-02 05:41:01
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 两种形式: XML方式 type="XMLMAPPER" 注解方式 type="ANNOTATEDMAPPER" v xml方式 1.1 pom.xml里添加maven插件 <!-- mybatis.generator start --> < plugin > < groupId > org.mybatis.generator </ groupId > < artifactId > mybatis-generator-maven-plugin </ artifactId > < version > 1.3.5 </ version > < dependencies > < dependency > < groupId > mysql </ groupId > < artifactId > mysql-connector-java </ artifactId > < version > 5.1.39 </ version >

第6章 使用springboot整合netty搭建后台

无人久伴 提交于 2020-05-02 05:08:16
我们不会去使用自增长的id,在现阶段的互联网开发过程中,自增长的id是已经不适用了。在未来随着系统版本的迭代,用户数量的递增,肯定会做分库分表,去做一些相应的切分。在这个时候我们就需要有一个唯一的id。项目里面会有一个唯一id的插件去使用。所有的主键id都会使用一个字符串varchar。小头像是预览过程中会使用到的。聊天页面使用的是小头像。qrcode是扫码的。cid是client id,它是针对我们每一台手机设备,每一台手机设备都会有一个唯一的cid,这个cid可以通过plus(设备的H5+)相应的API去获取,获取之后cid会用于做消息的推送。 users是用户表,还有一个用户请求表friends_request。 my_friends表。用户和朋友之间会有一个关联关系。通过好友的时候,my_friends表是插入两条记录,因为我的朋友和我自己是可以有一个逆向的。 聊天记录表chat_msg。任何的聊天记录在服务端都会保存的。sign_flag是签收的状态。我发送消息给我的朋友,我的朋友收到消息之后他没有去读,这个时候他的状态其实是未读。如果说他的用户接收之后,他可以自动地再发送一条签收的状态到我们的服务端,就可以证明我们当前这条消息是签收了。这个我们在netty里面我们会去做,我们会做签收的状态的更改的相应的代码实现。 一个真正的聊天软件,一个IM软件的话

Mybaits-Maven项目之逆向工程(代码自动生成)

做~自己de王妃 提交于 2020-05-02 05:08:00
1、添加maven插件,让maven环境支持mybatis-generator组件 在pom.xml里面添加如下代码: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.mybatis.generator</groupId> <artifactId>mybatis-generator</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql

mybatis pagehelper分页插件使用

微笑、不失礼 提交于 2020-05-02 04:56:28
使用过mybatis的人都知道,mybatis本身就很小且简单,sql写在xml里,统一管理和优化。缺点当然也有,比如我们使用过程中,要使用到分页,如果用最原始的方式的话,1.查询分页数据,2.获取分页长度,也就是说要使用到两个方法才能完成分页。有没有更更好的分页方式的,pagehelper分页插件因此而诞生,他的原理是利用mybatis拦截器,在查询数据库的时候,拦截下SQL,然后进行修改,从而实现分页(如果你硬是想知道原理,mybatis拦截器,学习过后你就知道什么回事了)。 这篇博客先向大家展示怎么使用,过后有时间再讲他的实现原理。 1.添加maven依赖 1 < dependency > 2 < groupId > com.github.pagehelper </ groupId > 3 < artifactId > pagehelper </ artifactId > 4 < version > 5.0.0 </ version > 5 </ dependency > 2.在 Spring 配置文件中配置拦截器插件,也可以在mybatis的xml里面配置,但是两种配置不能同时出现,否则容易出现com.github.pagehelper.PageInterceptor插件出现空指针问题 在spring.xml中定义: 1 <!-- 配置SqlSessionFactory对象

让MyBatis Generator产生的Mapper更简洁

早过忘川 提交于 2020-05-02 04:45:55
本文提供一种方法,目标是让MyBatis Generator产生的Mapper更简洁。 主要体现在如下几个方面: 有一个BaseMapper(自己编写) 所有产生的Mapper 继承BaseMapper , 无需每个Mapper都要定义好多接口方法 除了产生的Mapper有改动之外,其余自动产生的Entity、Example、XML文件保持不变 背景 不同Mapper的内容比较 比如,我们建立两个测试表,一个是 t_user , 一个是 t_news 。其建表语句如下: CREATE TABLE `t_user` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(64) DEFAULT NULL, `name` varchar(30) DEFAULT NULL, PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `t_news` ( `news_id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(150) NOT NULL, `content` text NOT NULL, `brief_intro` varchar(255)