回顾
前一篇中已经创建好工程并且进行了基本的测试,本篇则基于前篇建立的工程基础上实现数据库的访问。
数据库及表的创建
create database gps_com;
use gps_com;
create table tb_user(id int(11) NOT NULL AUTO_INCREMENT,loginname varchar(16) NOT NULL UNIQUE,password varchar(16) NOT NULL,PRIMARY KEY (ID));
insert into tb_user values(0,'root','123456');
工程结构及新加内容
工程结构如下图所示,新加了User.java、UserMapper.java、UserService.java、UserServiceImpl.java等文件。
下面的各个文件源代码。
User.java
package com.net.domain;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String loginname;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer userId) {
this.id = userId;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String userName) {
this.loginname = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String Password) {
this.password = Password;
}
@Override
public String toString() {
return "User [id=" + id + ", loginname=" + loginname
+ ", password=" + password + "]";
}
}
UserMapper.java
package com.net.domain;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.net.domain.User;
@Mapper
public interface UserMapper {
@Select("select * from tb_user where loginname=#{loginname} and password=#{password}")
User findWithLoginnameAndPassword(@Param("loginname") String loginname,@Param("password") String password);
@Select("select * from tb_user where loginname=#{loginname}")
User findWithLoginname(@Param("loginname") String loginname);
}
UserService.java
package com.net.service;
import com.net.domain.User;
public interface UserService {
User login(String loginname,String password);
User loginWithLoginname(String loginname);
}
UserServiceImpl.java
package com.net.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.net.domain.User;
import com.net.domain.UserMapper;
import com.net.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
@Override
public User login(String loginname,String password)
{
System.out.println("login with loginname&password");
return userMapper.findWithLoginnameAndPassword(loginname, password);
}
@Override
public User loginWithLoginname(String loginname)
{
System.out.println("login with loginname");
return userMapper.findWithLoginname(loginname);
}
}
相应代码已经添加完毕,接着修改TestWithWeb.java添加相应测试代码进行测试。
数据库访问测试
TestWithWeb.java
package com.net.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.net.domain.User;
import com.net.service.UserService;
@RestController
public class TestWithWeb {
@Autowired
@Qualifier("userService")
private UserService userService;
@RequestMapping("/log")
public String login()
{
System.out.println("hello");
User user = userService.login("root", "123456");
System.out.println(user.toString());
return "OK";
}
}
配置文件不用修改维持前篇内容,pom.xml文件也没有新的内容添加维持项目创建时自动创建的内容。下面下浏览器进行测试。
测试完成,可以访问数据库查询到相应数据。也就是说Spring Boot已经集成了mybatis和MySQL,实现了数据库的操作。