springboot整合springDataJPA(替代了MyBatis)


SpringDataJPA不需要表直接使用注解,是對JPA的封裝。

需求:查詢數據庫---->查到數據---->展示到頁面上

分析:

  1.創建數據表:user表(此處建表,只是為了依賴導入失敗,注解無法使用時備用)

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`username` varchar(50) DEFAULT NULL,
	`password` varchar(50) DEFAULT NULL,
	`name` varchar(50) DEFAULT NULL,
	PRIMARY KEY (`id`)
	) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

  插入數據:

INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '張wujiji);
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');

  2.使用持久層框架SpringDataJPA

    1.導入依賴

<!-- springBoot JPA的起步依賴 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--數據庫的依賴-->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

    2.創建實體類

@Entity                  //聲明此類是實體類
@Table(name = "user")    //聲明表名為user
@Data                    //此注解作用相當於添加了setter、getter、toString方法
public class User {
	//主鍵自增長策略
	@Id              //指定的類的屬性,用於識別(一個表中的主鍵)
        //指定如何標識屬性可以被初始化,例如自動、手動、或從序列表中獲得的值
	@GeneratedValue(strategy = GenerationType.IDENTITY) 
	private int id;

	private String username;
	private String password;
	private String name;
}        

    3.創建Controller類

@RestController         //相當於@Controller和@RequestMapping兩個注解的作用
public class UserController {

	@Autowired
	private UserDao userDao;

	@RequestMapping("/user/list")
	public List<User> getUserList(){
		return userDao.findAll();    //方法可以直接調用,不需要自己手寫
	}
}

    4.創建dao層:

//采用SpringDataJPA的方式必須繼承JpaRepository,兩個泛型,一個是實體類的類型,另一個是主鍵的類型
public interface UserDao extends JpaRepository<User,Integer> {
}

  3.將查詢到的數據顯示到頁面上

  將數據顯示到頁面上的方式有:

    1.靜態:html、vue.js框架、angular.js框架(此框架出bug時不會報出在第幾行,需要一行一行的找),后兩個都是重型框架,加載速度慢,只適用於寫辦公軟件、后台等被公司內部員工所用,不適用於客戶

    2.動態:每次請求都生成一次頁面jsp、json、freemarker模板、tymeleaf模板(比較麻煩)、velocity框架(已過時)。

    jsp本質上就是servlet,運行時需要容器,即工程,切必須是web工程,項目中若使用了springboot框架,則項目中不推薦使用jsp

  此處我們使用模板技術freemarker:

  freemarker使用步驟:

      1.添加依賴
<!--freemarker模板依賴-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
      2.創建模板文件,保存位置在resources/templates目錄下,文件后綴名為.ftl
<html>
<head>
<title>spring boot</title>
</head>
<body>
<table border="1px">
<thead>
<tr>
<th>id</th>
<th>用戶名</th>
<th>密碼</th>
<th>姓名</th>
</tr>
</thead>
<tbody>
<#--循環 將后台返回回來的userList數據循環 user代表userList中的單個對象-->
<#--循環次數有userList中的數據決定,有多少條就循環多少次-->
<#list userList as user>
<tr>
<th>${user.id}</th>
<th>${user.username}</th>
<th>${user.password}</th>
<th>${user.name}</th>
</tr>
</#list>
</tbody>
</table>
</body>
</html>
      3.編寫Controller類,把結果傳遞給模板
@Controller
public class PageController {
    @Autowired
    private UserDao userDao;

    @Value("${page.rows}")
    private Integer rows;
    @RequestMapping("/page/user/list")
    public String getUserList(Model model){
        List<User> userList = userDao.findAll();
        model.addAttribute("userList",userList);
        return "user";//返回ftl的名字,跳轉到頁面
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM