SpringBoot整合hibernate

添加springboot依赖

先使用idea创建maven项目,创建过程可以参考下面的博客:

http://blog.csdn.net/supervictim/article/details/53490046

创建完maven项目之后添加springboot依赖,pom.xml文件如下:

<dependencyManagement>
    <dependencies>
      <dependency>
        <!-- Import dependency management from Spring Boot -->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>1.3.5.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <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>

springMVC访问实例

上面添加了springboot依赖,可以使用springMVC,另外还添加了thymeleaf模板的依赖,下面看一个最简单的springMVC实例:

package cn.karent.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by wan on 2017/1/17.
 */
@Controller
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("first")
    public String first(Model model) {
        model.addAttribute("hello", "world");
        return "first";
    }


}

thymeleaf模板如下,fist.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8"></meta>
    <title>Title</title>
</head>
<body>
    <p th:text="'nihao:' + ${hello}"/>
</body>
</html>

结果:
这里写图片描述
注意:里面的thymeleaf模板必须创建在resources文件夹下面的templates文件夹(这个文件夹默认不存在,需要自己创建一个名字叫做templates的文件夹)下面
这里写图片描述

添加jpa依赖

接下来再pom.xml文件里面添加要使用的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>

添加依赖之后需要配置一些连接mysql所需要的配置,创建一个application.properties:

spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

注意:这个application.properties文件也是创建在resources文件夹下面,在myecplise里面创建配置文件是放在src文件夹下面,但是最后编译出来的文件还是在classes文件夹下面
这里写图片描述
这里写图片描述
这里写图片描述
main方法的写法(添加一些注解):

package cn.karent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

/**
 * Created by wan on 2017/1/17.
 */
@SpringBootApplication
@EnableJpaRepositories(basePackages = "cn.karent.repository")
@EntityScan(basePackages = "cn.karent")
public class AppConfig {

    public static void main(String[] args) {
        SpringApplication.run(AppConfig.class, args);
    }

}

接下来创建dao层,不过在这里是repository包,例如创建一个User实体,然后再创建一个UserRepository:

package cn.karent.entity;

import javax.persistence.*;
import java.util.Date;

/**
 * Created by wan on 2017/1/17.
 */
@Entity
@Table(name="user")
public class User {

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;

    private String userName;

    private Date birthDay;

    private String sex;

    private String address;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Date getBirthDay() {
        return birthDay;
    }

    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

UserRepository:

package cn.karent.repository;

import cn.karent.entity.User;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import javax.persistence.Table;

/**
 * Created by wan on 2017/1/17.
 */
@Repository
@Table(name="user")
@Qualifier("userRepository")
public interface UserRepository extends CrudRepository<User, Long > {

    public User findOne(Long id);

    public User save(User u);

    @Query("select t from User t where t.userName=:name")
    public User findUserByName(@Param("name") String name);
}

这里面是创建一个UserRepository接口,并不需要创建UserRepository实现,springboot默认会帮你实现,继承自CrudRepository,@Param代表的是sql语句中的占位符,例如这里的@Param(“name”)代表的是:name占位符。
下面再控制层使用UserRepository,创建一个HibernateController:

package cn.karent.controller;

import cn.karent.entity.User;
import cn.karent.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;

/**
 * Created by wan on 2017/1/17.
 */
@Controller
@RequestMapping("/hibernate")
@EnableAutoConfiguration
public class HibernateController {

    @Autowired
    private UserRepository userRepository;

    @RequestMapping("getUserById")
    @ResponseBody
    public User getUserById(Long id) {
        User u = userRepository.findOne(id);
System.out.println("userRepository: " + userRepository);
System.out.println("id: " + id);
        return u;
    }

    @RequestMapping("saveUser")
    @ResponseBody
    public void saveUser() {
        User u = new User();
        u.setUserName("wan");
        u.setAddress("江西省上饶市鄱阳县");
        u.setBirthDay(new Date());
        u.setSex("男");
        userRepository.save(u);
    }


}

@Autowired代表按照类型注入,@Resource按照名称注入
访问http://localhost:8080/hibernate/saveUser 之后,jpa自动生成sql语句:
这里写图片描述
访问http://localhost:8080/hibernate/getUserById?id=2
这里写图片描述

参考

http://www.cnblogs.com/leskang/p/5445698.html
http://www.tuicool.com/articles/zEz2QrY

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值