application.yml 配置文件
server:
port: 10001
spring: # spring定义的格式
application:
name: 自定义项目名称(可以省略,如果定义则必须唯一)
datasource:
username: 数据库用户名
password: "数据库密码"
# Mysql8.x版本,连接时url需要指定时区,并且驱动类包名发生了变化
url: jdbc:mysql://输入ip:输入端口/输入数据库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
type: com.alibaba.druid.pool.DruidDataSource
mybatis:
type-aliases-package: 输入项目package目录
controller
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@RequestMapping(path = "/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询所有用户信息
* @return
*/
@RequestMapping(path = "/findAll") //子路径
@ResponseBody //异步请求处理
public Result findAll() {
List<User> users = userService.findAll();
//如果ok直接返回数据
return Result.ok(users);
//测试访问 http://localhost:10001/user/findAll
}
}
service
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) // 声明式事务
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.selectAll();
}
}
dao
import tk.mybatis.mapper.common.Mapper;
// 继承通用tk.mybatis.mapper框架父接口
public interface UserMapper extends Mapper<User> {
// ctrl+i 查看接口方法
}
tk.mybatis.mapper Mapper 源码
UserMapper 接口
继承 Mapper<User>
继承 BaseMapper<T>
继承 BaseSelectMapper<T>
继承 SelectAllMapper<T>
接口定义的方法之一 List<T> selectAll();
BaseSelectProvider 实现类
继承 MapperTemplate 抽象类
实现 String selectAll(MappedStatement ms)
public class BaseSelectProvider extends MapperTemplate {
....
public String selectAll(MappedStatement ms) {
final Class<?> entityClass = getEntityClass(ms);
//修改返回值类型为实体类型
setResultType(ms, entityClass);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.selectAllColumns(entityClass));
sql.append(SqlHelper.fromTable(entityClass, tableName(entityClass)));
// 逻辑删除的未删除查询条件
sql.append("<where>");
sql.append(SqlHelper.whereLogicDelete(entityClass, false));
sql.append("</where>");
sql.append(SqlHelper.orderByDefault(entityClass));
return sql.toString();
}
.....
pojo
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "tb_user")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //主键自增
private Integer id;
private String name;
private String gender;
private Integer age;
private String address;
private String qq;
private String email;
private String username;
private String phone;
//getter setter tostring
index.html
<div class="container" id="userList">
....
<tr v-for="user in userList">
<!--差值表达式-->
<td>{{user.id}}</td>
<td>{{user.name}}</td>
<td>{{user.gender}}</td>
<td>{{user.age}}</td>
<td>{{user.address}}</td>
<td>{{user.qq}}</td>
<td>{{user.email}}</td>
....
</tr>
</table>
</div>
list.js
....
findAll: function () {
var url = "/user/findAll";
var _this = this;
//发送异步请求获取所有用户数据
axios.get(url).then(function (response) {
//console.log(response);
if(!response.data.status){
alert(response.msg);
return ;
}
_this.userList = response.data.data;
});
....
导入依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
<dependencies>
<!--通用mapper启动器依赖-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--druid启动器依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 热部署 不需要重启tomcat服务器,修改的代码自动生效-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--JDBC启动器依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--web启动器依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--编码工具包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>