一個簡單的web項目配合MySQL+Hibernate+Tomcat的簡單示例demo,很容易在此基礎上擴展成本身的項目.java
筆者IDE爲IntelliJ IDEA,新建一個工程,選擇Spring Initalizer:
下一步的話因爲須要部署到服務器上面,選擇了war.不須要的話能夠選擇jar.
選擇Spring Web+Spring Data JPA+MySQL Driver.
而後完成便可,首次運行的話配置依賴須要一點時間,請耐心等待.mysql
配置數據源分爲兩部分,一部分是建表與建用戶,另外一部分是在application.properties
中配置的.git
create database test;
注意這裏不用建立表了,由於Hibernate從實體類自動建立一個同名的表.
接着建立用戶:github
create user 'db'@'%' identified by 'xxxxx';
grant all on test.* to 'db'@'%';
這裏建議受權all,由於後面Hibernate會用到建表權限,不能僅僅受權增刪查改.web
配置四個屬性:spring
spring.jpa.hibernate.ddl-auto= spring.datasource.url= spring.datasource.username= spring.datasource.password=
第一個屬性是能夠取值sql
第一次運行時必須設置爲update或create,由於還不知道確切的實體類,第一次運行後,能夠設置爲update或none.
url的話對於MySQL來講是數據庫
jdbc:mysql://ip:3306/database
剩下的兩個爲用戶名與密碼.
如下是筆者的配置,供參考:
tomcat
這裏建立一個簡單的User實體類,須要用到javax中的@Entity
,@Id
,@GeneratedValue
與@GenerationType
註解.@Entity
用於標識實體類,@Id
用於標識主鍵,@GeneratedValue
與@GenerationType
用於配置主鍵.bash
@Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
除了主鍵以外,能夠加上本身想要的屬性與setter和getter,Hibernate會自動將實體類製做成一個數據表.
建立Repository保存用戶記錄.須要繼承CrudRepository<T,ID>
,第一個類型爲實體類,第二個類型爲主鍵類型.
public interface UserRepository extends CrudRepository<User,Integer> {}
控制層用於控制HTTP請求,在控制器中能夠配置不一樣的路徑實現不一樣的操做.
@Controller @RequestMapping(path = "/demo") public class MainController { @Autowired private UserRepository userRepository; @PostMapping(path = "/add") public @ResponseBody String addNewUser(@RequestParam String name) { User user = new User(); user.setName(name); userRepository.save(user); return "Saved."; } @GetMapping(path = "/all") public @ResponseBody Iterable<User> getAllUsers() { return userRepository.findAll(); } }
@RequestMapping
中的值表示URL以此值開頭@PostMapping
是僅處理POST請求的路徑@ResponseBody
表示返回的類型@RequestParam
表示一個從GET或POST中獲取的參數getAllUsers()
會返回一個JSON或者xml首先輸入:
localhost:8080/demo/all
因爲先前已經有一行數據因此有顯示.
不然的話應該顯示爲[]
.
接下來能夠添加數據:
curl localhost:8080/demo/add -d name=123
迴應:
接下來能夠選擇再次查看:
再看看數據庫:
若是以爲文章好看,歡迎點贊。
同時歡迎關注微信公衆號:氷泠之路。