专栏首页编程坑太多springboot (四)spring data jpa

springboot (四)spring data jpa

添加pom依赖

<!-- mysql驱动:com.mysql.jdbc.Driver -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- SpringData-Jpa依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

建表,编写实体 User.java

@Entity(name = "user")
public class User implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id;
    @Column(name = "name")
    String name;
    @Column(name = "age")
    Integer age;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

编写dao和service

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    @Query("select p from user p where p.name=:name ")
    List<User> findByName(@Param(value = "name") String name);
}

UserService 接口

public interface UserService {
    List<User> findListByName(String name);
}

UserServiceImpl 实现类

@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;
    @Override
    public List<User> findListByName(String name) {
        if (name == null || name.trim().isEmpty()) {
            return null;
        }
        return userRepository.findByName(name);
    }
}

编写controller和页面

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping(value = "/")
    public String user() {
        return "/user";
    }
    @ResponseBody
    @RequestMapping(value = "/findListByUserName")
    public Map<String, Object> findListByUserName(@RequestParam(name = "uname") String name) {
        Map<String, Object> map = new HashMap<>();
        List<User> userList = userService.findListByName(name);
        map.put("msg", "处理成功");
        map.put("data", userList);
        return map;
    }
}

user.html 页面代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户界面</title>
</head>
<body>
<h2>添加用户</h2>
<form method="post" action="./addUser">
    <label>用户名:</label><input type="text" name="uname">
    <label>年龄:</label><input type="number" name="age">
    <input type="submit" value="添加"/>
</form>
<form method="post" action="./findListByUserName">
    <label>用户名:</label><input type="text" name="uname">
    <input type="submit" value="查找用户"/>
</form>
</body>
</html>

基于上篇文章,先添加几个用户实体,再查找。效果如下图:

本文分享自微信公众号 - 编程坑太多(idig88),作者:诸葛阿明

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot (三)JdbcTemplate

    IT故事会
  • html头部meta属性大全

    IT故事会
  • web storage和cookie的区别

    IT故事会
  • pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    首先拉取 Redis 镜像, 这里我选择的是 redis:alpine 轻量级镜像版本:

    素质
  • [python]父类、子类、子类实例属性

    py3study
  • python通过配置文件共享全局变量

    在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况,此时通过配置文件定义全局变量是一个比较好的选择。

    十四君
  • Python 分布式缓存之Reids数据类型操作详解

    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护...

    砸漏
  • Oracle通过substr,instr,translate函数的组合获取日期分割表

    写这一篇文章也是因为项目从SQL数据库导入Oracle数据库中遇到的问题,主要是我们要导入的数据有年月的分割表的查询。

    Vaccae
  • Memcached·Redis缓存的基本操作

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、...

    Wyc
  • jsp模板继承

    lin_zone

扫码关注云+社区

领取腾讯云代金券