pom.xml文件
可以拿走直接用
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- druid数据库连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
application.yml
注意这里需要先改一下后缀名
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC driver-class-name: com.mysql.jdbc.Driver username: root password: root jpa: hibernate: ddl-auto: update show-sql: true
因为程序中碰到了bug
这里将sql语句打印出来了jpa:show-sql:true
User.java
package com.along.jpa_user.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity(name = "t_user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ", age=" + age + ‘}‘; } }
UserDao.java
package com.along.jpa_user.dao; import com.along.jpa_user.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Repository public interface UserDao extends JpaRepository<User,Integer> { List<User> findAll(); @Modifying @Transactional @Query(value = "insert into t_user value(?,?,?)", nativeQuery = true) int insertUser(@Param("id") int id,@Param("name")String name,@Param("age")int age); @Modifying @Transactional @Query(value = "delete from t_user where id=:id") int deleteById(@Param("id") int id); @Modifying @Transactional @Query(value = "update t_user t set t.name=:name,t.age=:age where t.id=:id") int updateUser(@Param("id") int id,@Param("name") String name,@Param("age") int age); }
这里也可以使用jpa父接口自定好的方法
UserService.java
package com.along.jpa_user.service; import com.along.jpa_user.entity.User; import org.springframework.data.repository.query.Param; import java.util.List; public interface UserService { List<User> findAll(); int insertUser(int id,String name,int age); int deleteById(int id); int updateUser(int id,String name,int age); }
UserServiceImpl.java
package com.along.jpa_user.service.Impl; import com.along.jpa_user.dao.UserDao; import com.along.jpa_user.entity.User; import com.along.jpa_user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired UserDao userDao; @Override public List<User> findAll() { return userDao.findAll(); } @Override public int insertUser(int id,String name, int age) { return userDao.insertUser(id,name,age); } @Override public int deleteById(int id) { return userDao.deleteById(id); } @Override public int updateUser(int id, String name, int age) { return userDao.updateUser(id,name,age); } }
UserController.java
package com.along.jpa_user.controller; import com.along.jpa_user.entity.User; import com.along.jpa_user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UserController { @Autowired UserService userService; @GetMapping("/findAll") public List<User> findAll(){ return userService.findAll(); } @GetMapping("/insert") public String insert(@RequestParam("id")int id,@RequestParam("name") String name,@RequestParam("age") int age){ int result=userService.insertUser(id,name,age); if(result>=1){ return "添加成功"; }else{ return "添加失败"; } } @GetMapping("/delete") public String delete(@RequestParam("id")int id){ int result=userService.deleteById(id); if(result>=1){ return "删除成功"; }else{ return "删除失败"; } } @GetMapping("/update") public String update(@RequestParam("id")int id,@RequestParam("name")String name,@RequestParam("age")int age){ int result=userService.updateUser(id, name, age); if(result>=1){ return "修改成功"; }else{ return "修改失败"; } } }
项目运行地址 http://localhost:8080/findAll
原文:https://www.cnblogs.com/alongg/p/13598270.html