记录SpringBoot 集成Mybatis 连接数据库 防止后面忘记
1.添加Mybatis和Mysql依赖   

   <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
  </dependency>

2.创建pojo,mapper,service,controller

此时项目结构

3.配置application配置文件

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver server.port=8080
server.tomcat.uri-encoding=UTF-8 #mybatis.config= classpath:mybatis-config.xml
mybatis.typeAliasesPackage=com.zld.student.bean
mybatis.mapperLocations=classpath:mappers/*Mapper.xml
4.添加接口
package com.zld.student.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.zld.student.pojo.Student;
import com.zld.student.service.StudentService;
@RestController
@RequestMapping("student")
public class StudentController { @Autowired
StudentService studentService;
@RequestMapping(value = "/add", method = { RequestMethod.GET, RequestMethod.POST })
public String add(Student student) {
return studentService.add(student); }
@RequestMapping(value = "/delete", method = { RequestMethod.GET, RequestMethod.POST })
public String delete(
@RequestParam(value = "ids", required = false) String[] ids) {
if (ids != null && ids.length <= 0) {
return "Ids不能为空";
}
return studentService.delete(ids);
}
@RequestMapping(value = "/update", method = { RequestMethod.GET, RequestMethod.POST })
public String update(Student student) {
return studentService.update(student);
}
@RequestMapping(value = "/findList", method = { RequestMethod.GET, RequestMethod.POST })
public Map<String, Object> findEqList(
) {
Map<String, Object> data = new HashMap<String, Object>();
List<Student> list=studentService.findEqList();
if (list.isEmpty()) {
data.put("msg", "无数据");
return data;
}
data.put("list", list);
return data;
}
@RequestMapping(value = "/findById", method = { RequestMethod.GET, RequestMethod.POST })
public Student findByIds(
@RequestParam(value = "id", required = false) Integer id) {
return studentService.findById(id);
}
}
package com.zld.student.service;

import java.util.List;

import com.zld.student.pojo.Student;

public interface StudentService {

    String add(Student student);

    String delete(String[] ids);

    String update(Student student);

    List<Student> findEqList();

    Student findById(Integer id);

}

StudentService

package com.zld.student.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.zld.student.mapper.StudentMapper;
import com.zld.student.pojo.Student;
import com.zld.student.service.StudentService; @Service
public class StudentServiceImpl implements StudentService{ @Autowired
private StudentMapper studentMapper; @Override
public String add(Student student) {
try {
int addCount = studentMapper.insertSelective(student);
if(addCount>0){
return "添加成功";
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("数据添加失败");
}
return "添加失败";
} @Override
public String delete(String[] ids) {
try {
int deleteCount = studentMapper.deleteAll(ids);
if(deleteCount>0){
return "删除成功";
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("数据删除失败");
}
return "删除失败";
} @Override
public String update(Student student) {
try {
int updateCount = studentMapper.updateByPrimaryKeySelective(student);
if(updateCount>0){
return "修改成功";
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("数据修改失败");
}
return "数据失败";
} @Override
public List<Student> findEqList() {
List<Student> data=null;
try {
data= studentMapper.findList();
return data;
} catch (Exception e) {
System.err.println("数据修改失败");
e.printStackTrace();
return data;
} }
@Override
public Student findById(Integer id) {
// TODO Auto-generated method stub
return id==null ? new Student(): studentMapper.selectByPrimaryKey(id);
} }

StudentServiceImpl

package com.zld.student.mapper;

import java.util.List;

import com.zld.student.pojo.Student;

public interface StudentMapper {
int deleteByPrimaryKey(Integer sno); int insert(Student record); int insertSelective(Student record); Student selectByPrimaryKey(Integer sno); int updateByPrimaryKeySelective(Student record); int updateByPrimaryKey(Student record); int deleteAll(String[] ids); List<Student> findList();
}

StudentMapper.java

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zld.student.mapper.StudentMapper" >
<resultMap id="BaseResultMap" type="com.zld.student.pojo.Student" >
<id column="sno" property="sno" jdbcType="INTEGER" />
<result column="sname" property="sname" jdbcType="VARCHAR" />
<result column="sage" property="sage" jdbcType="TIMESTAMP" />
<result column="ssex" property="ssex" jdbcType="CHAR" />
</resultMap>
<sql id="Base_Column_List" >
sno, sname, sage, ssex
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from student
where sno = #{sno,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from student
where sno = #{sno,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.zld.student.pojo.Student" >
insert into student (sno, sname, sage,
ssex)
values (#{sno,jdbcType=INTEGER}, #{sname,jdbcType=VARCHAR}, #{sage,jdbcType=TIMESTAMP},
#{ssex,jdbcType=CHAR})
</insert>
<insert id="insertSelective" parameterType="com.zld.student.pojo.Student" >
insert into student
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="sno != null" >
sno,
</if>
<if test="sname != null" >
sname,
</if>
<if test="sage != null" >
sage,
</if>
<if test="ssex != null" >
ssex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="sno != null" >
#{sno,jdbcType=INTEGER},
</if>
<if test="sname != null" >
#{sname,jdbcType=VARCHAR},
</if>
<if test="sage != null" >
#{sage,jdbcType=TIMESTAMP},
</if>
<if test="ssex != null" >
#{ssex,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.zld.student.pojo.Student" >
update student
<set >
<if test="sname != null" >
sname = #{sname,jdbcType=VARCHAR},
</if>
<if test="sage != null" >
sage = #{sage,jdbcType=TIMESTAMP},
</if>
<if test="ssex != null" >
ssex = #{ssex,jdbcType=CHAR},
</if>
</set>
where sno = #{sno,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.zld.student.pojo.Student" >
update student
set sname = #{sname,jdbcType=VARCHAR},
sage = #{sage,jdbcType=TIMESTAMP},
ssex = #{ssex,jdbcType=CHAR}
where sno = #{sno,jdbcType=INTEGER}
</update> <delete id="deleteAll" parameterType="java.lang.String" >
delete from student
where sno in <foreach item="id" collection="array" open="(" separator=","
close=")">
#{id}
</foreach>
</delete> <select id="findList" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from student
</select>
</mapper>

StudentMapper.xml

package com.zld.student.pojo;

import java.util.Date;

public class Student {
private Integer sno; private String sname; private Date sage; private String ssex; public Integer getSno() {
return sno;
} public void setSno(Integer sno) {
this.sno = sno;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname == null ? null : sname.trim();
} public Date getSage() {
return sage;
} public void setSage(Date sage) {
this.sage = sage;
} public String getSsex() {
return ssex;
} public void setSsex(String ssex) {
this.ssex = ssex == null ? null : ssex.trim();
}
}

Student

package com.zld.student;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
@MapperScan(basePackages = {"com.zld.student.mapper"})
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

DemoApplication

最后项目结构

最近一直忙于前端写篇文章记录下来,免得以后捡起来的时候需要重新翻资料

-----只有用尽全力,才能看起来毫不费劲

SpringBoot 集成Mybatis 连接Mysql数据库的更多相关文章

  1. springboot整合mybatis连接mysql数据库出现SQLException异常

    在springboot整合mybatis连接数据库的时候,项目中遇到一个SQLException,我检查了properties配置文件,看数据源有没有配错,检查有没有打错字,在数据库中把sql语句查询 ...

  2. 如何用IDEA创建springboot(maven)并且整合mybatis连接mysql数据库和遇到的问题

    一.New->Project 二.点击next 三.在Group栏输入组织名,Artifact就是项目名.选择需要的java版本,点击next 四.添加需要的依赖 在这里我们也可以添加sql方面 ...

  3. 五、使用druid管理数据库,mybatis连接mysql数据库

    简介:    使用 mybatis 连接 mysql 数据库, 一套简单的增删改查流程, 前台用 bootstrap, bootstrap-table 框架, 最后用 druid 监控数据库连接情况 ...

  4. (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

    大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...

  5. mybatis连接mysql数据库实现的jdbc功能

    最近公司项目要使用myBatis,自己以前没有接触过,就在网上找到了一些资料研究了些.初步做出了基于myBatis连接mysql数据库的jdbc实现的功能. employee.java package ...

  6. SpringBoot 整合 hibernate 连接 Mysql 数据库

    前一篇搭建了一个简易的 SpringBoot Web 项目,最重要的一步连接数据库执行增删改查命令! 经过了一天的摸爬滚打,终于成功返回数据! 因为原来项目使用的 SpringMVC + Hibern ...

  7. SpringBoot配置JDBC连接MySql数据库的时候遇到了报错:HikariPool-1 - Exception during pool initialization

    使用SpringBoot做JAVA开发时,JDBC连接MySql数据库的时候遇到了报错: ERROR 10392 --- [ main] com.zaxxer.hikari.pool.HikariPo ...

  8. mybatis连接mysql数据库插入中文乱码

    对于MySQL数据库的乱码问题,有两种情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的 ...

  9. Mybatis连接mysql数据库出现乱码

    对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的 ...

随机推荐

  1. C. 新年的繁荣

    题解: 用最小生成树的Boruvka算法 即每次找到每个点不在它联通块的边内的最大值 然后进行log次这个过程 然后找这个的话我们可以用trie树在2^m的时间内完成建树(如果是1要合并到0上)

  2. 用Count() > 0 来判断集合非空的问题

    Linq 出现之前,我们通常使用下面的方式来判断集合是否非空,即集合包含元素: ]; ; var list = new List<string>(); ; var collection = ...

  3. Jmeter实现dubbo接口压测案例

    当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...

  4. BZOJ.4212.神牛的养成计划(Trie 可持久化Trie)

    BZOJ 为啥hzw的题也是权限题啊 考虑能够匹配\(s1\)这一前缀的串有哪些性质.对所有串排序,能发现可以匹配\(s1\)的是一段区间,可以建一棵\(Trie\)求出来,设为\([l,r]\). ...

  5. 2019年3月2日-小雨.md

    2019年3月2日, 星期六 开学已经一周了,时间好像限制了自己进步的脚步,一个人的精力有限,想做好方方面面实在是太难了,有很多事儿最后都没做的完美.相反,自己应该放下繁琐的包袱,简简单单的干一件事儿 ...

  6. FTP连接超时

    今天程序在连接FTP服务器,突然无法连接,用Windows 的 Explorer能正常连接,但用 WebRequest.WebResponse连接时,总是抛出连接超时异常. 后查找相关资料,原因是:程 ...

  7. 1、初识Java

    1.计算机发展过程 2.Java简史 lSUN公司是一家什么样的公司? 美国SUN(Stanford University Network)公司 在中国大陆的正式中文名为“太阳计算机系统(中国)有限公 ...

  8. HTML/CSS实现的一个列表页

    又到休息日,白天没事跟朋友去逛逛街,侃大山,晚上了,上网无趣,于是就想起该练练了, 这次是做了一个页面,最上面是一个banner 用到了一个jQuery的逻辑判断当banner初始top值小于wind ...

  9. [LeetCode] Lemonade Change 买柠檬找零

    At a lemonade stand, each lemonade costs $5.  Customers are standing in a queue to buy from you, and ...

  10. javaWeb+servlet+mysql实现简单的企业员工管理系统

    企业员工信息管理系统 一.源码描述       本程序为企业员工信息管理系统.是javaEE一个系统,主要实现登录功能和两个模块信息的增删改查.可以作为JAVAweb学习,也可在原有基础上进行深一步的 ...