springboot+mybatis+mysql(增删改查xml入门编程)

jdk1.8

idea 2017.2.6

springboot 2.x

项目搭建省略,直接上代码:

项目结构:


application.properties配置


server.port=8086

#加载Mybatis配置文件
#注意:一定要对应mapper映射xml文件的所在路径
mybatis.mapper-locations = classpath:mapper/*Mapper.xml
mybatis.type-aliases-package= com.java.mbt.mapper

#数据源必填项
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = mysql

#选填
# Number of ms to wait before throwing an exception if no connection is available.
spring.datasource.tomcat.max-wait=10000
# Maximum number of active connections that can be allocated from this pool at the same time.
spring.datasource.tomcat.max-active=50
# Validate the connection before borrowing it from the pool.
spring.datasource.tomcat.test-on-borrow=true

pojo类


package com.java.mbt.modle;

import java.io.Serializable;

/**
 * @authorseerhuitao 实体类用户描述
 * @create2019/5/9
 */
public class User implements Serializable {
    private Integer userId;

    private String userName;

    private String userAge;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserAge() {
        return userAge;
    }

    public void setUserAge(String userAge) {
        this.userAge = userAge;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", userAge='" + userAge + '\'' +
                '}';
    }
}

UserMapper接口:


package com.java.mbt.mapper;

import com.java.mbt.modle.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {
    int addUser(User user);

    int deleteUser(User user);

    int updateUser(User user);

    User getUserById(User user);

    List<User> selectAllUser();

}

UserService接口:


package com.java.mbt.service;

import com.java.mbt.modle.User;

import java.util.List;

public interface UserService {
    int addUser(User user);

    int deleteUser(User user);

    int updateUser(User user);

    User getUserById(User user);

    List<User> findAllUser();
}

UserServiceImpl类:


package com.java.mbt.service.impl;

import com.java.mbt.mapper.UserMapper;
import com.java.mbt.modle.User;
import com.java.mbt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpI implements UserService{
    //@Autowired(required=true):当使用@Autowired注解的时候,其实默认就是@Autowired(required=true),表示注入的时候,该bean必须存在,否则就会注入失败。
    //@Autowired(required=false):表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错。
    @Autowired(required = false)
    //这里不写(required = false)底下的userMapper会报错
    private UserMapper userMapper;

    @Override
    public int addUser(User user) {
        return userMapper.addUser(user);
    }

    @Override
    public int deleteUser(User user){
        return userMapper.deleteUser(user);
    }

    @Override
    public  int updateUser(User user){
        return userMapper.updateUser(user);
    }

    @Override
    public  User getUserById(User user){
        return userMapper.getUserById(user);
    }

    @Override
    public List<User> findAllUser() {
        return userMapper.selectAllUser();
    }

}

UserMapper.xml


<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
  例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
  -->
<mapper namespace="com.java.mbt.mapper.UserMapper">
    <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
        使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
        resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
        User类就是users表所对应的实体类
        -->
    <!--user是表名称,u_name是数据库里面的表名称,uName是实体类里面的成员变量-->
    <insert id="addUser" parameterType ="com.java.mbt.modle.User">
        insert  into tb_user(user_name,user_age)
        values (#{userName},#{userAge})
    </insert>

    <delete id="deleteUser" parameterType ="com.java.mbt.modle.User">
        delete from tb_user where user_id = #{userId}
    </delete>

    <update id="updateUser" parameterType ="com.java.mbt.modle.User">
        update  tb_user set user_name =#{userName},user_age = #{userAge}  where  user_id= #{userId}
    </update>

    <select id="getUserById" parameterType ="com.java.mbt.modle.User" resultType="com.java.mbt.modle.User">
        select  user_id userId,user_name userName,user_age userAge
        from tb_user where user_id= #{userId}
    </select>

    <select id="selectAllUser" resultType="com.java.mbt.modle.User">
        select  user_id userId,user_name userName,user_age userAge
        from tb_user
    </select>

</mapper>

UUCotroller类:


package com.java.mbt.cotroller;

import com.java.mbt.modle.User;
import com.java.mbt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;


//注意这里要是使用了RestCotroller,就不需要@ResponseBody,看起来还是RestCotroller比较方便
@RestController
//@ResponseBody
public class UUCotroller {
    @Autowired(required = false)
    private UserService userService;

    //测试
    @RequestMapping(value="/ff")
    public String getTest(){
        return "我是谁";
    }
    /*增加用户*/
    // http://localhost:8080/user/addUser/?userName=Alex&userAge=20
    @RequestMapping(value = "/addUser", produces = {"application/json;charset=UTF-8"})
   //    @ResponseBody
    public int addUser(User user){
        User u=new User();
        u.setUserAge("14");
        u.setUserName("恵涛");
//      return userService.addUser(user);
        return userService.addUser(u);
    }

    /*删除用户*/
    // http://localhost:8086/user/deleteUser/?userId=2
    @RequestMapping(value = "/deleteUser",produces = {"application/json;charset=UTF-8"})
//    @ResponseBody
    public  int deleteUser(User user)
    {
        return userService.deleteUser(user);
    }

    /*修改用户*/
    // http://localhost:8086/user/updateUser/?userId=3&userName=刘牧师&userAge=50
    @RequestMapping(value = "/updateUser",produces = {"application/json;charset=UTF-8"})
//    @ResponseBody
    public  int  updateUser(User user){
        return userService.updateUser(user);
    }

    /*根据UserId查找用户*/
    // http://localhost:8086/user/getUserById/?userId=3
    @RequestMapping(value = "/getUserById", produces = {"application/json;charset=UTF-8"})
//    @ResponseBody
    public User getUserById(User user){
        return userService.getUserById(user);
    }

    /*查询所有用户*/
    // http://localhost:8086/user/getAllUsers
    @RequestMapping(value = "/getAllUsers", produces = {"application/json;charset=UTF-8"})
//    @ResponseBody
    public Object findAllUser(){
        return userService.findAllUser();
    }

}

application类:


package com.java.mbt;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.java.mbt.mapper")
public class MbtApplication {

	public static void main(String[] args) {
		SpringApplication.run(MbtApplication.class, args);
	}

}

pow.xml


<?xml version="1.0" encoding="UTF-8"?>
<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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.java</groupId>
	<artifactId>mbt</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>mbt</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.0.1</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

数据库:

接口演示:

猜你喜欢

转载自blog.csdn.net/chehec2010/article/details/90046154
今日推荐