热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot集成mybatis(二)

简介:以前写过一篇关于springboot集成mybatis的文章,不过那篇文章是基于注解的,没有以xml的形式加载,这片文

       简介:以前写过一篇关于spring boot集成mybatis的文章,不过那篇文章是基于注解的,没有以xml的形式加载,这片文章比较通俗,完全是基于部分xml风格的,现在简单介绍下,以前那篇文章的地址在https://blog.csdn.net/xhf852963/article/details/98724831。

第一步:添加maven依赖

org.mybatis.spring.bootmybatis-spring-boot-starter1.1.1mysqlmysql-connector-java
第二步:在application.properties配置相关信息

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jspspring.datasource.url=jdbc:mysql://localhost:3306/zlits_user?useSSL=false
spring.datasource.username=root
spring.datasource.password=Rfid123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql= true#是否检查配置文件
mybatis.check-config-location =true
#mybatis的配置文件的位置
mybatis.config-location=classpath:mybatis-config.xml
#mybatis的mapper文件的位置
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml

第三步:建库建表

DROP DATABASE IF EXISTS zlits_user;
CREATE DATABASE zlits_user;
USE zlits_user;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',`NAME` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '名字',`PASSWORD` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '密码',`AGE` bigint(20) DEFAULT NULL COMMENT '年龄',PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员信息表';

第四步:工程代码结构如下 

第五步:服务端代码如下 

       UserMapper类

@Mapper
public interface UserMapper {int deleteByPrimaryKey(Long id);int insert(User record);int insertSelective(User record);User selectByPrimaryKey(Long id);int updateByPrimaryKeySelective(User record);int updateByPrimaryKey(User record);List selectAll();
}

       User类

public class User implements Serializable {private Long id;private String name;private String password;private Long age;private static final long serialVersionUID = 1L;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name == null ? null : name.trim();}public String getPassword() {return password;}public void setPassword(String password) {this.password = password == null ? null : password.trim();}public Long getAge() {return age;}public void setAge(Long age) {this.age = age;}@Overridepublic String toString() {StringBuilder sb = new StringBuilder();sb.append(getClass().getSimpleName());sb.append(" [");sb.append("Hash = ").append(hashCode());sb.append(", id=").append(id);sb.append(", name=").append(name);sb.append(", password=").append(password);sb.append(", age=").append(age);sb.append(", serialVersionUID=").append(serialVersionUID);sb.append("]");return sb.toString();}
}

       UserMapper.xml配置文件



ID, NAME, PASSWORD, AGEdelete from userwhere ID = #{id,jdbcType=BIGINT}SELECT LAST_INSERT_ID()insert into user (NAME, PASSWORD, AGE)values (#{name,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=BIGINT})SELECT LAST_INSERT_ID()insert into userNAME,PASSWORD,AGE,#{name,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},#{age,jdbcType=BIGINT},update userNAME = #{name,jdbcType=VARCHAR},PASSWORD = #{password,jdbcType=VARCHAR},AGE = #{age,jdbcType=BIGINT},where ID = #{id,jdbcType=BIGINT}update userset NAME = #{name,jdbcType=VARCHAR},PASSWORD = #{password,jdbcType=VARCHAR},AGE = #{age,jdbcType=BIGINT}where ID = #{id,jdbcType=BIGINT}

       UserService接口及实现类

public interface UserService {public List findAll();}@Service
public class UserServiceImpl implements UserService {@AutowiredUserMapper mapper;public List findAll() {System.out.println("执行了DAO层");return mapper.selectAll();}
}

       UserController类

@Controller
public class UserController {@AutowiredUserService userService;//查询@RequestMapping("/listUserCommon")public String listUser(Model model) {List users = userService.findAll();for (User user : users) {System.out.println(user.toString());}model.addAttribute("users", users);return "listUser";}
}

       jsp界面

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8"%>






<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/core" prefix&#61;"c"%>

idnamepasswordage
${s.id}${s.name}${s.password}${s.age}


       在浏览器输入http://localhost:8080/listUserCommon

       简要说明&#xff1a;如果在UserMapper类上不添加&#64;Mapper类,那么就得在 启动类上添加&#64;MapperScan 注解&#xff0c;一般情况下都是在启动类上添加&#64;MapperScan注解&#xff0c;如果类比较多的话统一加一个标签就够了&#xff0c;加这个注解的标签主要是为了让spring进行管理&#xff0c;如果有多个dao&#xff0c;用逗号隔开即可&#64;MapperScan({"com.zit.cac.dao","com.zit.epms.dao"}) 


推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 在开发app时,使用了butterknife后,在androidStudio打包apk时可能会遇到报错。为了解决这个问题,可以通过打开proguard-rules.pro文件进行代码混淆来解决。本文介绍了具体的混淆代码和方法。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
author-avatar
鱼咸4406
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有