热门标签 | 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"}) 


推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
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社区 版权所有