SpringBoot和Hibernate整合
1.先使用idea建立maven專案(這個就不詳細講了,很簡單的操作)
2.建立完maven專案之後新增springboot依賴,pom.xml檔案如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.tongdun.gwl</groupId> <artifactId>SpringBootTest</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--springboot依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <finalName>hibernateSpringDemo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build> </project>
pom檔案編寫完畢,配置maven路徑,並匯入依賴.
3.接下來寫一個SpringBoot入門程式
(1)新建類MyTest.java
1 package cn.huawei.gwl; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.context.annotation.ComponentScan; 6 7 @SpringBootApplication 8 @ComponentScan(basePackages = "cn") 9 public class MyTest { 10 11 public static void main(String[] args) { 12 SpringApplication.run(MyTest.class, args); 13 } 14 }
需要注意的是:這個類的上面需要新增SpringBoot的註解@SpringBootApplication,然後在主函式中開始啟動.
(2)然後建立一個HelloContreller類,用來測試SpringBoot
1 package cn.huawei.gwl; 2 3 import org.springframework.web.bind.annotation.PathVariable; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RestController; 6 7 8 @RestController 9 public class HelloController { 10 11 @RequestMapping("/say") 12 String home() { 13 System.out.println("get into"); 14 return "hello world"; 15 } 16 17 @RequestMapping("/hello/{name}") 18 String hello(@PathVariable String name) { 19 return "hello" + name; 20 } 21 }
需要注意的是這上面的幾個註解:
- @RestController:表示這是個控制器,和Controller類似
- @EnableAutoConfiguration:springboot沒有xml配置檔案因為這個註解幫助我們幹了這些事情,有了這個註解springboot啟動的時候回自動猜測你的配置檔案從而部署你的web伺服器
- @RequestMapping(“/say”):這個和SpringMvc中的類似了。
- @PathVariable:引數
SpringBoot程式驗證完畢.
5.接下來再pom.xml檔案裡面新增要使用的jpa依賴:
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-data-jpa</artifactId> 4 </dependency> 5 <dependency> 6 <groupId>mysql</groupId> 7 <artifactId>mysql-connector-java</artifactId> 8 </dependency>
並匯入依賴
6.新增依賴之後需要配置一些連線MySQL所需要的配置,建立一個application.properties:
1 spring.datasource.url = jdbc:mysql://localhost:3306/test 2 spring.datasource.username = root 3 spring.datasource.password = abcd1234 4 spring.datasource.driverClassName = com.mysql.jdbc.Driver 5 # Specify the DBMS 6 spring.jpa.database = MYSQL 7 # Show or not log for each sql query 8 spring.jpa.show-sql = true 9 # Hibernate ddl auto (create, create-drop, update) 10 spring.jpa.hibernate.ddl-auto = update 11 # Naming strategy 12 spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy 13 # stripped before adding them to the entity manager 14 spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
7.為main方法添加註解@EnableJpaRepositories
1 package cn.tongdun.gwl; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.context.annotation.ComponentScan; 6 import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 7 8 9 @SpringBootApplication 10 @EnableJpaRepositories 11 @ComponentScan(basePackages = "cn") 12 public class MyTest { 13 14 public static void main(String[] args) { 15 SpringApplication.run(MyTest.class, args); 16 } 17 }
8.接下來建立dao層,不過在這裡是repository包,例如建立一個User實體,然後再建立一個UserRepository:
1 import org.springframework.data.jpa.repository.Query; 2 import org.springframework.data.repository.CrudRepository; 3 import org.springframework.data.repository.query.Param; 4 5 public interface UserRepository extends CrudRepository<User, Long> { 6 7 public User findOne(Long id); 8 9 public User save(User user); 10 11 @Query("select t from User t where t.userName=:name") 12 public User findUserByName(@Param("name") String name); 13 14 }
這裡面是建立一個UserRepository介面,並不需要建立UserRepository實現,springboot預設會幫你實現,繼承自CrudRepository,@Param代表的是sql語句中的佔位符,例如這裡的@Param(“name”)代表的是:name佔位符。
9.下面再控制層使用UserRepository,建立一個HibernateController:
1 package cn.tongdun.gwl; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.ResponseBody; 8 9 import java.util.Date; 10 11 @Controller 12 @RequestMapping("/hibernate") 13 @EnableAutoConfiguration 14 public class HibernateController { 15 16 @Autowired 17 private UserRepository userRepository; 18 19 @RequestMapping("getUserById") 20 @ResponseBody 21 public User getUserById(Long id) { 22 User u = userRepository.findOne(id); 23 System.out.println("userRepository: " + userRepository); 24 System.out.println("id: " + id); 25 return u; 26 } 27 28 @RequestMapping("saveUser") 29 @ResponseBody 30 public void saveUser() { 31 User u = new User(); 32 u.setUserName("wan"); 33 u.setAddress("浙江省杭州市濱江區"); 34 u.setBirthDay(new Date()); 35 u.setSex("男"); 36 userRepository.save(u); 37 } 38 }
@Autowired代表按照型別注入,@Resource按照名稱注入
至此,程式碼已經編寫完畢,下面進入測試
相關推薦
SpringBoot和Hibernate整合
1.先使用idea建立maven專案(這個就不詳細講了,很簡單的操作) 2.建立完maven專案之後新增springboot依賴,pom.xml檔案如下: <?xml version="1.0" encoding="UTF-8"?> <projec
springboot和quartz整合實現動態定時任務(持久化單節點)
依賴 1.5 ostc read 自動 1.8 自動註入 etc string Quartz是一個完全由java編寫的開源作業調度框架,為在Java應用程序中進行作業調度提供了簡單卻強大的機制,它支持定時任務持久化到數據庫,從而避免了重啟服務器時任務丟失,支持分布式多節
springboot和mybatis整合(單多表)
1、MyBatis介紹 MyBatis 本是apache的一個開源專案iBatis, 2010年這個專案由apache software foundation 遷移到了google code,並且改名為MyBatis,實質上Mybatis對ibatis進行一些改進。 MyBatis是一個優秀的持
struts2和hibernate整合的時候報錯的原因
type Exception report message Method "retrieveAll" failed for object [email protected] description The server encountered an i
springboot和mybatis整合
專案結構 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifac
SpringBoot和Mybatis整合二(基於配置檔案)
專案結構: EmployeeMapper: package com.lucifer.springboot.mapper; import com.lucifer.springboot.bea
Spring和Hibernate整合xml配置
1、基於xml的配置 dbconfig.properties資料來源檔案配置 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/databaseName user=root pass
SpringBoot和swagger2整合
SpringBoot和swagger2整合學習記錄 一.引入swagger2相關依賴 <dependency> <groupId>io.springfox</groupId> <a
04 )SpringBoot 和 MyBatis 整合
1 所需的jar包 mysql驅動包:mysql-connector-java 資料庫連結池:druid mybatis對應jar包:mybatis-spring-boot-starter 分頁查詢對應jar包:pagehelper <
springboot和kafka整合過程中出現的一個錯誤
java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration.kafkaProducerListener
springboot和quartz整合分散式多節點
雖然單個Quartz例項能給予我們很好的任務job排程能力,但它不能滿足典型的企業需求,如可伸縮性、高可靠性滿足。假如你需要故障轉移的能力並能執行日益增多的 Job,Quartz叢集勢必成為你應用的一部分了。使用 Quartz 的叢集能力可以更好的支援你的業務需求,並且即使是其中一臺機器在最糟的時間掛掉了
springboot和thymeleaf整合過程中遇到的坑!
springboot和thymeleaf整合過程中的各種坑 我覺得你在整合之前考慮好前端和後端和互動怎麼做? 一般兩個方法:一個是前端做前端的 後端做後端API 通過ajax去呼叫 二
SpringBoot和Mybatis整合一(基於註解)
專案結構: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww
struts,spring和Hibernate整合(註解式)
首先編寫可持久化的實體@Entity @Table(name = "Stock") public class Stock { @Id //標識實體中ID和底層資料表的主鍵統一 @GeneratedValue private int id; //
spring-orm 和Hibernate整合
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" re
Spring,SpringMVC和hibernate整合小demo
DeptController @Controller public class DeptController { //植入service @Resource private IDeptService deptService; @Reques
將osworkflow與spring和hibernate整合的基本介紹
1. 將osworkflow與spring和hibernate結合的原因 1)簡化對osworkflow的配置 2)利用hibernate框架的一些特性,如持久化,快取等 3)事務管理,osworkflow本身是不支援事務的,而事務是作為一個
使用註解方式進行spring和hibernate整合
整合spring和hibernate需要五個要素,分別包括持久化的類, 資料來源,SessionFactory, TransactionManager和持久化操作的DAO類。 持久化類: @Entitypublicclass Spitter { private
spring和hibernate整合使用getCurrentSession方法
spring和hibernate整合使用getCurrentSession()方法獲得session例項時,一定記得在sessionFactory的bean中新增<prop key="hibernate.current_session_context_class"&g
整合Spring框架和Hibernate框架
slf4j erl update rep java 監聽 session hiberna .cn -------------------siwuxie095 整合 Spring 框架和 Hibernate 框架