当前位置: 首页 > news >正文

重庆企业网站定制开发公司重庆城乡建设子网站

重庆企业网站定制开发公司,重庆城乡建设子网站,仿站参考网站,asp商品网站源码文章目录 一、MybatisPlus1、ORM2、添加依赖3、全局配置4、Navicat5、UserController6、CRUD操作7、BaseMapper8、两个注解 二、多表查询1、模拟用户订单2、通过用户查相关订单3、UserMapperNew4、查询订单和所属用户5、OrderMapper6、OrderController 三、条件查询四、分页查询… 文章目录 一、MybatisPlus1、ORM2、添加依赖3、全局配置4、Navicat5、UserController6、CRUD操作7、BaseMapper8、两个注解 二、多表查询1、模拟用户订单2、通过用户查相关订单3、UserMapperNew4、查询订单和所属用户5、OrderMapper6、OrderController 三、条件查询四、分页查询 一、MybatisPlus 1、ORM Object Relational Mapping对象关系映射为了解决面向对象与关系数据库存在的互不匹配的一种技术 ORM框架本质是简化编程中操作数据库的编码 2、添加依赖 !-- MyBatisPlus依赖--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.2/version/dependency !-- mysql驱动依赖--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version/dependency !-- 数据连接池druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.23/version/dependency3、全局配置 在application.properties中添加配置 server.port80 spring.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-namecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3307/demo2?useSSLfalse spring.datasource.usernameroot spring.datasource.password123456 mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl由于我PC有两个数据库版本的存在所以这里使用3307端口不产生冲突数据库的名称为demo2账号密码默认 在启动项也就是项目名Application中添加MapperScan注解这里是新建的mapper包如果不好找路径那么鼠标右键点击包选择Copy Path/Reference...复制路径 4、Navicat 在navicat里面把表建好然后选择id主键自增 5、UserController 这里模拟查询用户 之前的实体类User继续使用 编写UserMapper接口 编写UserController并且声明UserMapper对象写上AutoWired注解表示注入这样我们可以直接使用UserMapper中的方法 浏览器测试一下 如果查询不到报错检查数据库是否正常连接 也可以在控制台日志看到结果 6、CRUD操作 同理有查就少不了指定id查、增删改 查询指定用户 UserController UserMapper 增删改UserController 增删改UserMapper 打开ApiPost测试一下 这里id是8虽然是自增因为我之前测试过几条我们可以再加一条 可以看到表更新了 如果表中的username是说明是编码的问题在navicat中设置utf-8字符集还没用的话继续在application.properties中的url后多加点规则 spring.datasource.urljdbc:mysql://localhost:3307/demo2?useSSLfalseuseUnicodetruecharacterEncodingutf-8如果出现Data truncated for column id at row 1问题①检查实体类参数类型是否和数据库表中匹配 ②将数据库表的int范围调高 ③看看是不是id默认在表里面排最后了把id上移到第一条和mapper中语句参数对应 7、BaseMapper 白学时刻以上都是我们在mybatis中用到的而mybatisPlus提供了BaseMapper接口 新建UserMapperNew接口 修改UserController类可以发现userMapperNew里面就自带了很多方法可以ctrl左键点进去详情查看 ListUser list userMapperNew.selectList(null);重新测试一下 剩下方法类似 8、两个注解 TableName注解说明了对应哪一张表应对实体类和表不一致 TableId主键自增在控制台打印日志时看到对应的id之前会显示0 二、多表查询 实现复杂关系映射可以使用Results、Result、One、Many注解组合完成复杂关系的配置 1、模拟用户订单 navicat 新建订单order表uid表示所属哪个用户订单 2、通过用户查相关订单 在User类里添加代码其实orders这个东西是不在user表里的所以这样打上注解并且添加getter和setter方法只是为了实现多表查询 在UserMapperNew中定义查找用户和订单的接口 在UsrController中调用 浏览器访问发现orders为空因为本来user表中就没有orders 3、UserMapperNew 利用Results、Result和Many注解 //查询用户及其所有的订单Select(select * from user)Results({Result(column id,property id),Result(column username,property username),Result(column password,property password),Result(column birthday,property birthday),Result(column id,property orders,javaType List.class,manyMany(select com.example.demo.mapper.OrderMapper.selectByUid))})ListUser selectAllUserAndOrders();这里是将结果集对应起来然后利用user表中的id去映射orders说明orders的参数类型Listmany表示一对多的关系UserMapperNew去使用OrderMapper中的方法使得user表的id能够作为order表的uid去执行sql语句 刚开始我报错说是语法问题检查后无误又将包全部导入一遍还是爆500错误发现可能是关键字冲突将order表的名字改为t_order后成功运行 4、查询订单和所属用户 同理在Order实体类加上注解说明user参数并不存在 TableField(exist false)private User user;5、OrderMapper // 查询所有的订单同时查询订单所属的用户Select(select * from t_order)Results({Result(column id,property id),Result(column orderTime,property orderTime),Result(column money,property money),Result(column uid,property uid),Result(column uid,property user,javaType User.class,oneOne(select com.example.demo.mapper.UserMapperNew.selectById))})ListOrder selectAllOrdersAndUser();这里是一个订单只对应一个用户所以是One注解利用订单的uid对应找出user表中的用户 6、OrderController 新建OrderController控制器运行 RestController public class OrderController {AutowiredOrderMapper orderMapper;GetMapping(/order/findAll)public ListOrder find(){return orderMapper.selectAllOrdersAndUser();} }可以看到三个订单以及所属的用户都被查询出来了 三、条件查询 前面说过MybatisPlus对单表查询增强了我们可以不用自己写sql语句这里采用QueryWrapper UserController表示我们只想找到关于火男的信息 // 条件查询GetMapping(/user/find)public ListUser findByCondition(){QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.eq(username,火男);return userMapperNew.selectList(queryWrapper);}四、分页查询 UserController // 分页查询GetMapping(/user/findByPage)public IPage findByPage(){ // 设置起始值和每页条数PageUser page new Page(0, 2);IPage iPage userMapperNew.selectPage(page,null);return iPage;}可以在mybatis-plus官网查看page使用方法 edge运行结果默认返回JSON格式如果其他的浏览器可以用F12查看具体参数
http://www.zqtcl.cn/news/926430/

相关文章:

  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备
  • 网站开发小程序快站模板
  • 江苏集团网站建设智慧养老网站开发
  • 外网网址可以做英语阅读的网站怎么原创视频网站
  • 宁波网站建设流程图自己做网站可以揽业务吗
  • 赤峰市建设网站东胜做网站
  • 有口碑的坪山网站建设微信扫一扫登录网站如何做
  • 自己建网站要花多少钱蓟县网站建设
  • 兖州中材建设有限公司网站wordpress免签约接口
  • 湖北网站seo设计成都疾控最新通告
  • 商丘网站建设推广公司配资网站建设多少钱
  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航
  • 深圳市宝安区怎么样百度禁止seo推广
  • 手机电商网站 模板常熟做网站优化
  • 免费的logo设计网站网页设计与制作dw
  • 线上调研问卷在哪个网站上做网页设计学生作业
  • 云南高端网站建设网页设计工作室选址依据
  • 免费的编程自学网站互联网公司网站建设ppt
  • 免费发帖的网站网站空间服务器费用
  • 商城类的网站一般怎么做做ps从哪个网站上下载图片大小
  • 怎么做网站链接支付免费推广网站搭建
  • 威海 网站建设刚刚北京传来重大消息
  • 深圳返利网站开发做网站版权怎么写
  • 上传网站内容做社交电商第一步怎么做