spring boot hibernate

来源:互联网 发布:手机网络运营商无服务 编辑:程序博客网 时间:2024/06/08 15:57

上一篇文章我已经介绍了如何实现spring bootmvc框架,现在引入hibernate

首先先说一下,spring boot已经融合了hibernate,所以不需要你在导入什么jar文件。

这里只需要在加入一个jar,springboot数据处理的jar文件

<!-- spring boot数据处理 -->
 <dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-data-jpa</artifactId> 
</dependency> 

当然,还有最基本的数据库链接jar文件

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>


好了

接着我们添加相关数据库配置,在原有的application.properties文件中加入

spring.datasource.url =jdbc:mysql://localhost:3306/test


spring.datasource.username = root


spring.datasource.password = 123456


spring.datasource.driverClassName =com.mysql.jdbc.Driver

#指定连接池中最大的活跃连接数.
spring.datasource.max-active=20

#指定连接池最大的空闲连接数量.
spring.datasource.max-idle=8

#指定必须保持连接的最小值
spring.datasource.min-idle=8

#指定启动连接池时,初始建立的连接数量
spring.datasource.initial-size=10


#指定目标数据库.
spring.jpa.database = MYSQL


#是否开启sql的log,默认为: false
spring.jpa.show-sql = true

#hibernate打印sql
hiernate.show_sql=true

#
spring.jpa.properties.hibernate.hbm2ddl.auto=update 

这些配置什么意思,看一下这篇文章吧,我觉得看完了,你会学的更多,所以这里不做解释

https://segmentfault.com/a/1190000004316491

接着创建dao接口

package com.mx.dao;


import java.util.List;


import com.mx.model.User;


public interface UserDao{

List<User> getList();


}

然后是实现,这里我还是hibernate熟悉的一些方式,亲切些吧。

使用 @Repository 将 DAO 类声明为 Bean 

package com.mx.dao.impl;


import java.util.List;


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;


import org.springframework.stereotype.Repository;


import com.mx.dao.UserDao;
import com.mx.model.User;


@Repository
public class UserDaoImpl implements UserDao {

@PersistenceContext
private EntityManager entityManager;


@Override
public List<User> getList() {
// TODO Auto-generated method stub
Query query=entityManager.createQuery("from User");
return query.getResultList();
}


}

接着创建service

package com.mx.service;


import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import com.mx.dao.UserDao;
import com.mx.model.User;


@Service("userService")
public class UserService {

@Autowired
private UserDao userDao;

public List<User> getList(){
List<User> list=userDao.getList();
return list;
}


}

这里如果用service接口的话,出出现无法注入bean,具体原因,我暂时不清楚,后续研究后再改,如果有人明白欢迎下面评论。

这里给大家介绍一个文章

http://blog.csdn.net/ye1992/article/details/19971467

好了,下面我先用junit测试:

这里我要加入一个jar,阿里的json工具,格式化数据,看起来方便写

 <!--  json-->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.37</version>
</dependency>


package mx1;


import java.util.List;


import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


import com.alibaba.fastjson.JSON;
import com.mx.StartMvc;
import com.mx.model.User;
import com.mx.service.UserService;


@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=StartMvc.class)
public class JunitTest1 {


@Autowired
UserService userService;

@Test
public void test1(){
List<User> list=userService.getList();
String json=JSON.toJSONString(list);
System.out.println(json);
}


}

运行测试一下


然后实现controller

package com.mx.controller;


import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


import com.mx.model.User;
import com.mx.service.UserService;




@Controller
public class IndexController {

@Autowired
UserService userService;


@RequestMapping("/index1")
public String index(){
List<User> list=userService.getList();
System.out.println(list);
return "index";
}

@RequestMapping("/test3")
public String test3(){


return "eee";
}


}

这里有一个非常重要的问题

记住spring boot启动类一定要放在所有包前面

就是StartMvc.java放在其他文件上级目录。比如,一般是com.mx.controller  那么StartMvc.java就放在com.mx包下面。要不然,到时候找不到其他bean,无法注入



好了,自己测试吧

有问题,下面评论

原创粉丝点击