前文:
手把手教你开发springboot项目(一)创建工程:https://blog.csdn.net/wh456413/article/details/106673510
手把手教你开发springboot项目(二)配置开发环境:
https://blog.csdn.net/wh456413/article/details/106683487
接上一步骤,接下来开始设计接口
1.建包,建立开发包modules包,在modules包里建立模块开发包
2.在entity包中建立实体类,这里使用user类
3.dao层开发
建立dao层接口,注意需要在接口前加上@Repository和@Mapper注解,这里跟ssm框架不一样,不需要使用mapper.xml进行数据库操作,使用注解存放sql语句操作,如使用mapper.xml开发,见:springboot使用mapper.xml操作数据库源码
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
import com.springboot.springb.modules.user.entity.User;
@Repository
@Mapper
public interface UserDao {
/*查询所有用户*/
@Select("select * from user")
@Results/*定义此结果集必须放在查询语句下面,其他方法才能获取*/(id="userResult", value={
@Result(column="u_wnum", property="uWnum", jdbcType=JdbcType.VARCHAR),
@Result(column="u_name", property="uName", jdbcType=JdbcType.VARCHAR),
@Result(column="u_password", property="uPassword", jdbcType=JdbcType.CHAR)
})
List<User> getUserList();
/*分页查询*/
@Select("select * from user")
@ResultMap("userResult")
List<User> getUserListPage();
/*根据用户ID查询用户*/
@Select("select * from user where u_wnum=#{wNum}")
@ResultMap("userResult")
User getUserBywNum(String wNum);
/*增加用户*/
@Insert("insert into user(u_wnum,u_name,u_password,fk_role_id) values(#{uWnum},#{uName},#{uPassword},#{fkRoId})")
int inserUser(User u);
/*删除用户*/
@Delete("delete from user where u_wnum=#{wNum}")
int deleteUserBywNum(String wNum);
/*修改用户*/
@Update("update user set u_name=#{uName},u_password=#{uPassword} where u_wnum=#{uWnum}")
int updateUser(User u);
}
4.service,Impl实现层开发
UserService
public interface UserService {
List<User> getUserList();
List<User> getUserListPage();
User getUserBywNum(String wNum);
int inserUser(User u);
int deleteUserBywNum(String wNum);
int updateUser(User u);
}
UserServiceImpl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userdao;
@Override
public List<User> getUserList() {
List<User>us=userdao.getUserList();
return us;
}
@Override
public User getUserBywNum(String wNum) {
return userdao.getUserBywNum(wNum);
}
@Override
public int inserUser(User u) {
return userdao.inserUser(u);
}
@Override
public int deleteUserBywNum(String wNum) {
return userdao.deleteUserBywNum(wNum);
}
@Override
public int updateUser(User u) {
return userdao.updateUser(u);
}
@Override
public List<User> getUserListPage() {
return userdao.getUserListPage();
}
}
5.controller控制层开发
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserServiceImpl userImpl;
/**
* 查询所有用户
*/
@RequestMapping("/getUserList")
@ResponseBody
public List<User> getUserList(){
List<User> us=userImpl.getUserList();
return us;
}
/*
* 分页查询
*/
@RequestMapping("/getUserListPage")
@ResponseBody
public PageInfo<User> getUserListPage(){
PageHelper.startPage(0,3);
List<User> us=userImpl.getUserListPage();
return new PageInfo<User>(us);
}
/**
* 根据用户Id查询用户
*/
@RequestMapping("/getUserByWnum")
@ResponseBody
public User getUserByWnum(String wNum){
return userImpl.getUserBywNum(wNum);
}
/**
* 增加用户
*/
@PostMapping("/insertUser")
@ResponseBody
public int insertUser(User u){
return userImpl.inserUser(u);
}
/*
* 删除用户
*/
@PostMapping("/deleteUserBywNum")
@ResponseBody
public int deletetUser(String wNum){
return userImpl.deleteUserBywNum(wNum);
}
/*
* 修改用户
*/
@PostMapping("/updateUser")
@ResponseBody
public int updateUser(User u){
return userImpl.updateUser(u);
}
}
完成!
可以看到,springboot接口开发与ssm框架的区别主要体现在dao层上。
效果测试:
这里访问工程不需要工程名
ps:批量操作写法
@Update({"<script>" +
"UPDATE community_user " +
"set community_id=#{communityId} " +
"where user_id in"+
"<foreach collection='userIdlist' item='item' open='(' close=')' separator=','>" +
"#{item} </foreach>" +
"</script>"})
int updateUserCommunity(@Param("communityId")Integer communityId,@Param("userIdlist")List<String> userIdlsit);
接下来就可以进行页面开发了