springboot 数据源


建表语句

CREATE TABLE `user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(100) NOT NULL,
  `pwd` varchar(100) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

配置文件

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  • User.java
    注解是给 jpa 用的,提前写上了
package cn.go.pojo;

import javax.persistence.*;

@Entity(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer uid;

    @Column(name = "uname")
    private String name;
    @Column(name = "pwd")
    private String pwd;

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

mybatis

  • pom
 <dependency>
    <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.32</version>
  </dependency>
 <!-- mysql 依赖 -->
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>

   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter</artifactId>
   </dependency>
   <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <!-- 注意版本否则 @Select 会报错 -->
       <version>1.3.2</version>
   </dependency>
  • mapper
package cn.go.mapper;

import cn.go.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {

    @Select("SELECT * FROM USER WHERE UNAME = #{name}")
    List<User> findByName(@Param("name") String name);

    @Insert("INSERT INTO USER(UNAME, PWD) VALUES(#{name}, #{pwd})")
    int insert(@Param("name") String name, @Param("pwd") String pwd);
}

  • service
package cn.go.service;

import cn.go.pojo.User;

import java.util.List;
import java.util.Optional;

public interface UserService {

    List<User> query(String name);

    int addMybatis(String name, String pwd);

}

  • serviceImpl
package cn.go.service.impl;

import cn.go.mapper.UserMapper;
import cn.go.pojo.User;
import cn.go.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;


    @Override
    public List<User> query(String name) {
        List<User> byName = userMapper.findByName(name);
        return byName;
    }

    @Override
    public int addMybatis(String name, String pwd) {
        int insert = userMapper.insert(name, pwd);
        return insert;
    }
}

  • Controller
package cn.go.controller;

import cn.go.pojo.User;
import cn.go.service.UserService;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/com")
public class ComController {

    @Autowired
    private UserService userService;

    @RequestMapping("/addUser")
    public String addUser(String name, String pwd){
        int i = userService.addMybatis(name, pwd);
        return String.valueOf(i);
    }

    @RequestMapping("/mybatisFind")
    public String mybatisFind(String name){
        List<User> query = userService.query(name);
        return JSON.toJSONString(query);
    }
}
  • 启动类
package cn.go;

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

@MapperScan("cn.go.mapper")
@SpringBootApplication
public class HelloAppRun {

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

mybatis

JdbcTemplate

  • pom
  <!-- jdbcTemplate 依赖 -->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-jdbc</artifactId>
   </dependency>

   <!-- mysql 依赖 -->
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>
   <dependency>
       <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.32</version>
    </dependency>
  • service
package cn.go.service;

import cn.go.pojo.User;

import java.util.List;
import java.util.Optional;

public interface UserService {
    void createUser(String name, String pwd);
}
  • serviceImpl
package cn.go.service.impl;

import cn.go.pojo.User;
import cn.go.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private JdbcTemplate jdbcTemplate;


    @Override
    public void createUser(String name, String pwd) {
        jdbcTemplate.update("insert into user values(null,?,?);", name, pwd);
    }

}

  • controller
package cn.go.controller;

import cn.go.pojo.User;
import cn.go.service.UserService;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/com")
public class ComController {

    @Autowired
    private UserService userService;

    @RequestMapping("/addUser")
    public String addUser(String name, String pwd){
        userService.createUser(name,pwd);
        return "OK";
    }
}

jdbcTemplate

spring-jpa

  • pom
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.32</version>
</dependency>
  • dao
package cn.go.dao;

import cn.go.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserDao extends JpaRepository<User, Integer> {
}

  • service
package cn.go.service;

import cn.go.pojo.User;

import java.util.List;
import java.util.Optional;

public interface UserService {
 
    List<User> jpaFind(String name);

    Optional<User> jpaFindOne(Integer id);
}

  • serviceImpl
package cn.go.service.impl;

import cn.go.dao.UserDao;
import cn.go.pojo.User;
import cn.go.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class UserServiceImpl implements UserService {


    @Autowired
    private UserDao userDao;

    public List<User> jpaFind(String name){

        User user = new User();
        user.setName(name);
        Example<User> example = Example.of(user);
        List<User> users = userDao.findAll(example);
        return users;
    }


    public Optional<User> jpaFindOne(Integer id){

        Optional<User> byId = userDao.findById(id);
        return byId;
    }
}
  • controller
package cn.go.controller;

import cn.go.pojo.User;
import cn.go.service.UserService;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/com")
public class ComController {

    @Autowired
    private UserService userService;

    @RequestMapping("/jpaFind")
    public String jpaFind(String name){
        List<User> query = userService.query(name);
        return JSON.toJSONString(query);
    }

    @RequestMapping("/jpaFindById")
    public String jpaFind(Integer id){
        Optional<User> user = userService.jpaFindOne(id);
        return JSON.toJSONString(user);
    }
}

findById
find

报错

500
控制台有类似下面的输入

2019-11-17 16:44:11.476 INFO 11040 — [nio-8080-exec-2] o.s.b.f.xml.XmlBeanDefinitionReader : Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2019-11-17 16:44:11.521 INFO 11040 — [nio-8080-exec-2] o.s.jdbc.support.SQLErrorCodesFactory : SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]

可以检查是不是sql中表名或者字段写错了,或者配置文件打开debug级别的sql,查看sql。配置如下:

logging:
  level:
    cn:
      go:
        mapper : debug
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值