随笔 - 434,  文章 - 0,  评论 - 463,  阅读 - 46万
 步骤 1  导入核心依赖    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <!--导入hibernate-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

主要就是导入hibernate的两个依赖,还有mysql的驱动。

 步骤 2  springboot的yml配置文件    
#开发环境
server:
  port: 80
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/myboot?autoReconnect=true
    username: root
    password: 123
    hikari:
      #池中最大链接数
      maximum-pool-size: 50
      #池中链接最长生命周期
      max-lifetime: 120000
      #连接允许在池中闲置的最长时间
      idle-timeout: 600000
      #等待来自池的连接的最大毫秒数
      connection-timeout: 30000
      #池中最小空闲链接数
      minimum-idle: 10

 步骤 3  注册hibernate的依赖    

package com.example.myboot.config;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
public class HibernateConfig {
    @Value("${spring.datasource.url}")
    private String jdbcUrl;
    @Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;
    @Value("${spring.datasource.driver-class-name}")
    private String driverClassName;


    @Autowired
    private SessionFactory sessionFactory;

    /** 数据源采用springboot推荐的hikari* */
    @Bean
    public DataSource dataSource(){
        return DataSourceBuilder.create()
                .url(jdbcUrl)
                .username(username)
                .password(password)
                .driverClassName(driverClassName)
                .build();
    }

    @Bean
    public LocalSessionFactoryBean localSessionFactoryBean(){
        Properties properties=new Properties();
        properties.setProperty("hibernate.show_sql", "true");
        properties.setProperty("hibernate.hbm2ddl.auto", "update");

        /**
         * 如果是高版本的mysql,请使用MySQLDialect
         */
        properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");

        LocalSessionFactoryBean lsb=new LocalSessionFactoryBean();
        lsb.setDataSource(dataSource());
        /**
         * 设置实体类的位置
         */
        lsb.setPackagesToScan("com.example.myboot.pojo");
        lsb.setHibernateProperties(properties);

        return lsb;

    }



    @Bean
    public HibernateTemplate hibernateTemplate(){
        HibernateTemplate hibernateTemplate = new HibernateTemplate();
        hibernateTemplate.setSessionFactory(sessionFactory);
        return hibernateTemplate;
    }
}

 步骤 4  POJO类    

package com.example.myboot.pojo;

import javax.persistence.*;

@Entity
@Table(name = "t_user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "s_id")
    private Long id;
    @Column(name = "s_name")
    private String name;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

这样在程序启动的时候,就会自动生成 t_user 表。

 步骤 5  新增和查询    
搞一个UserController,里面写新增和查询的方法:

package com.example.myboot.controller;

import com.example.myboot.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    HibernateTemplate hibernateTemplate;

    @RequestMapping("add")
    @Transactional(rollbackFor = Exception.class)
    public String add(User user){
        hibernateTemplate.saveOrUpdate(user);
        return "success";
    }

    @RequestMapping("findAll")
    public List<User> findAll(User user){
        List<User> users = hibernateTemplate.findByExample(user);
        return users;
    }
}

 步骤 6  源码下载    
posted on   剽悍一小兔  阅读(29)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示