springboot开发中遇到问题汇总

March 30, 2019 · 开发 · 298次阅读

响应的json数据为一个json数组:

[{id: 2, name: "测试2", category: {id: 10, name: "测试10"}},…]

0: {id: 2, name: "测试2", category: {id: 10, name: "测试10"}}
1: {id: 1, name: "测试1", category: {id: 10, name: "测试10"}}

这时,在vue中取数据应该用response.data:

listSearch:function () {
var url = "search?keyword="+vue.keyword;
axios.post(url).then(function (response) {
vue.beans = response.data;
})
}

Error creating bean with name 'entityManagerFactory' defined in class path resource
提示这个错误往往是配置文件application.properties中数据库地址密码等配置有误

#database
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/library_manage?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto = none


pojo实体类,service服务类,controller控制器类在springboot里都要加上相应的注解程序才能编译。这个初学容易忘加上,会编译出错。

pojo实体类加上@Entity,并标注对应的表名@Table,在主键id上也有对应的注解

@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
private String name;
private String passWord;

service类要注解@Service

@Service
public class BookService {
@Autowired
BookDAO bookDAO;
@Autowired CategoryService categoryService;
public void add(Book bean){
    bookDAO.save(bean);
}
public void delete(int id){
    bookDAO.delete(id);
}
public Book get(int id){
    return bookDAO.findOne(id);
}
public void update(Book bean){
    bookDAO.save(bean);
}

restful风格的controller要注解为@RestController

@RestController
public class BookController {.....}

vue中,a标签href添加参数需在href前添加冒号,这样才能将bean.id值转化过来

<a :href="'admin_book_edit?id=' + bean.id ">

controller返回例如登录成功等一些消息,目前看最好是以对象的形式返回,返回的对象会自动转换为json对象

//Result类为专门返回登录成功后结果的类
public class Result {
public static int SUCCESS_CODE = 1;
public static int FAIL_CODE =0;
public int code;
public String message;
private Result(int code,String message){
    this.code = code;
    this.message = message;
}
public static Result success(){
    return new Result(SUCCESS_CODE,null);
}
public static Result fail(){
    return new Result(FAIL_CODE,"密码错误");
}
}

//LoginController代码片段,返回的是对象
    @PostMapping("/login")
public Object login(@RequestBody User userParam, HttpSession httpSession){
    User user = userService.get(userParam.getName(),userParam.getPassWord());
    if (user==null){
        return Result.fail();
    } else {
        httpSession.setAttribute("user",userParam);
        return Result.success();
    }
}

//login.html中代码片段
                login:function () {
                axios.post(vue.uri,this.user).then(function (response) {
                  vue.result =  response.data  //respose.data即为{code:1,message:"登录成功"}
                    if (vue.result.code ==1){
                        location.href="admin_category_list"
                    }
                    else{
                        alert(vue.result.message)
                    }
                })
            }

<div>块放错地方,注意vue的工作范围。el:

标签:none

最后编辑于:2020/06/18 10:38

添加新评论

控制面板