小白练习springboot遇到的问题:
1、无法访问底层数据库
2、无法找到mapper.xml
3、TimeZone的问题
以上问题针对小白的mybatis和MySQL数据库8.0,如下根据实现CRUD案例给出正确解决方案:
由于小白使用spring插件,操作会方便些,以下为整合操作步骤:
一、创建项目目录
1、新建如下项目
2、根据需要填写
3、
点击next-----finish则spring boot项目建好。
pom.xml文件如下:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE
com.example
demo
0.0.1-SNAPSHOT
springboot-springmvc-mybatis
Demo project for Spring Boot
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- thymeleaf视图支持html-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</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.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 连接池 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
目录结构如下:
根据需要填写 application.properties
#配置数据库信息(使用MySQL8.0驱动)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root
#连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#配置mybatis实体类的别名
mybatis.type-aliases-package=cn.wxm.pojo
#扫描mybatis的配置文件
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml
mybatis.config-location=classpath:mybatis/config/sqlMapConfig.xml
resource下新建文件夹 mybatis,在其下面创建Mapper映射文件:
如下:
<select id="findAll" resultType="user">
select * from user
</select>
<insert id="insertUser" parameterType="user">
insert into user(name,age) values(#{name},#{age})
</insert>
<select id="findUserById" resultType="user" parameterType="int">
select id,name,age from user where id=#{value}
</select>
<update id="updateUser" parameterType="user">
update user set name=#{name},age=#{age} where id=#{id}
</update>
<delete id="deleteUserById" parameterType="user">
delete from user where id=#{id}
</delete>
根据目录创建相应文件:
建立mapper接口:
package cn.wxm.mapper;
import java.util.List;
import cn.wxm.pojo.User;
public interface UserMapper {
/**
* 添加用户
* @param user
*/
void insertUser(User user);
/**
* 查询所有用户
* @return
*/
List<User> findAll();
/**
* 根据id查询用户
* @param id
* @return
*/
User findUserById(Integer id);
/**
* 更新用户
* @param user
*/
void updateUser(User user);
/**
* 删除用户
* @param user
* @return
*/
int deleteUserById(User user);
}
在service包中也创建上述接口
service实现如下:
package cn.wxm.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.wxm.mapper.UserMapper;
import cn.wxm.pojo.User;
import cn.wxm.service.UserService;
@Service //业务层接口
@Transactional//所有方法都受事务控制
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void insertUser(User user) {
userMapper.insertUser(user);
}
@Override
public List<User> findAll() {
List<User> list = userMapper.findAll();
return list;
}
@Override
public User findUserById(Integer id) {
User user = this.userMapper.findUserById(id);
return user;
}
@Override
public void updateUser(User user) {
this.userMapper.updateUser(user);
}
@Override
public int deleteUserById(User user) {
return this.userMapper.deleteUserById(user);
}
}
控制器方法如下:
package cn.wxm.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.wxm.pojo.User;
import cn.wxm.service.UserService;
@Controller
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
/**
* 跳转到指定页面
* @param page
* @return
*/
@RequestMapping("/{page}")
public String showPage(@PathVariable("page") String page){
return page;
}
/**
* 添加用户
* @param user
* @return
*/
@RequestMapping("/addUser")
public String addUser(User user){
this.userService.insertUser(user);
return "redirect:/users/find"; //重定向
}
/**
* 查询所有用户
* @param model
* @return
*/
@RequestMapping("find")
public String findAll(Model model){
List<User> list = this.userService.findAll();
model.addAttribute("list", list);
return "list";
}
@RequestMapping("findUserById")
public String findById(Integer id,Model model){
User user = this.userService.findUserById(id);
model.addAttribute("user", user);
return "update";
}
@RequestMapping("editUser")
public String updateUser(User user){
this.userService.updateUser(user);
return "redirect:/users/find";
}
@RequestMapping("deleteUserById")
public String deleteUserById(User user){
int num=this.userService.deleteUserById(user);
if(num>0){
return "redirect:/users/find";
}else{
return "error";
}
}
}
简单页面如下:
1、插入数据:input.html
2、查看用户列表:list.html
3、回显用户信息
运行效果:
添加用户:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190223145159903.png
以上为小白整理,如果哪里有问题还希望各位权威不吝批评