赞
踩
链接:https://pan.baidu.com/s/1ZdKFZyx1wMYUsiO4wbnhrQ
提取码:b6bw
<?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>org.example</groupId> <artifactId>mu</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.6.RELEASE</version> <!-- 1.5.1--> </parent> <dependencies> <!--hibernate的核心--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.5.3.Final</version> </dependency> <!--用于hibernate整合spring的支持--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.2.12.RELEASE</version> </dependency> <!--使用阿里的连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> <!--用于ID生成--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core</artifactId> <version>5.7.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> </project>
# ????
spring.application.name=springboot-hibernate
# ??????
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# ?????
spring.datasource.name=defaultDataSource
# ???????
spring.datasource.url=jdbc:mysql://localhost:3306/hibernates?serverTimezone=UTC
# ??????&???
spring.datasource.username=root
spring.datasource.password=root
# ???? WEB ????
server.port=8080
package bj.sh.gy.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import javax.sql.DataSource; /** * @author LXY * @desc * @time 2022-10-16 0:55 */ @Configurable public class DataSourceConfig { @Bean @ConfigurationProperties("spring.datasource") public DataSource dataSource() { DruidDataSource source = new DruidDataSource(); //source.setDriverClassName("com.mysql.cj.jdbc.Driver"); source.setName("test"); source.setInitialSize(1); //最大活动 source.setMaxActive(10); source.setMaxWait(60000); //配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 source.setTimeBetweenEvictionRunsMillis(60000); //配置一个连接在池中最小生存的时间,单位是毫秒 source.setMinEvictableIdleTimeMillis(300000); //每分钟打印一次连接状态日志 //source.setTimeBetweenLogStatsMillis(60000); return source; } }
package bj.sh.gy.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.orm.hibernate5.LocalSessionFactoryBean; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.sql.DataSource; import java.util.Properties; /** * @author LXY * @desc * @time 2022-10-16 0:57 */ @Component public class HibernateToConfig { @Resource private DataSource dataSource; @Bean public LocalSessionFactoryBean sessionFactory() { LocalSessionFactoryBean bean = new LocalSessionFactoryBean(); bean.setDataSource(dataSource); // 扫描实体类 bean.setPackagesToScan("bj.sh.gy.enity"); Properties properties = new Properties(); properties.setProperty("current_session_context_class", "thread"); DruidDataSource druidDataSource = (DruidDataSource) dataSource; properties.setProperty("connection.pool_size", String.valueOf(druidDataSource.getMaxActive())); // 配置方言 mysql 5.7.34 properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL57Dialect"); // <!-- 控制台打印SQL --> properties.setProperty("hibernate.show_sql", "true"); // 制台打印SQL格式化 //properties.setProperty("hibernate.format_sql", "true"); /** * create:表示启动的时候先drop,再create * create-drop: 也表示创建,只不过再系统关闭前执行一下drop * update: 这个操作启动的时候会去检查schema是否一致,如果不一致会做scheme更新 * validate: 启动时验证现有schema与你配置的hibernate是否一致,如果不一致就抛出异常,并不做更新 */ // 首次启动使用 create 让bean自动生成表,之后使用 update模式即可 // properties.setProperty("hibernate.hbm2ddl.auto", "create"); bean.setHibernateProperties(properties); return bean; } }
package bj.sh.gy.enity; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; import java.util.Date; /** * @author LXY * @desc * @time 2022-10-16 0:59 */ @Table(name = "user") @Entity public class User { @Id @Column(name = "id") private int id; @Column(name = "name") private String name; @Column(name = "age") private int age; @Column(name = "t_version") private int t_version; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getT_version() { return t_version; } public void setT_version(int t_version) { this.t_version = t_version; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
package bj.sh.gy.Dao; import bj.sh.gy.enity.User; import java.util.List; /** * @author LXY * @desc * @time 2022-10-16 10:06 */ public interface UserDao { List<User>queyrall(); int savauser(User user); }
package bj.sh.gy.Dao; import bj.sh.gy.enity.User; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import java.util.List; /** * @author LXY * @desc * @time 2022-10-16 10:07 */ @Repository public class DaoImple implements UserDao{ @Autowired private SessionFactory sessionFactory; @Override public List<User> queyrall() { return sessionFactory.getCurrentSession().createQuery("from User ").list(); } @Override public int savauser(User user) { return (int) sessionFactory.getCurrentSession().save(user); } }
package bj.sh.gy.Service; import bj.sh.gy.enity.User; import java.util.List; /** * @author LXY * @desc * @time 2022-10-16 10:11 */ public interface UserService { List<User>queryUser(); int savauser(User user); }
package bj.sh.gy.Service; import bj.sh.gy.Dao.UserDao; import bj.sh.gy.enity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @author LXY * @desc * @time 2022-10-16 10:12 */ @Service public class UserServiceImple implements UserService{ @Autowired UserDao userDao; @Override @Transactional public List<User> queryUser() { return userDao.queyrall(); } @Override@Transactional public int savauser(User user) { return userDao.savauser(user); } }
package bj.sh.gy.connction; import bj.sh.gy.Service.UserService; import bj.sh.gy.enity.User; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.UUID; /** * @author LXY * @desc * @time 2022-10-16 1:02 */ @RestController public class connction { @Autowired UserService service; @GetMapping("/getqueryuser") private List<User> qeryUser(){ return service.queryUser(); } @GetMapping("/savauser") private int savauser(){ User user=new User(); user.setId(2); user.setName("李四"); user.setAge(16); user.setT_version(1); return service.savauser(user); } }
package bj.sh.gy; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author LXY * @desc * @time 2022-10-16 1:04 */ @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。