spring boot DAO之Hibernate
发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,依赖 org.springframework.boot spring-boot-starter-data-jpa
千家信息网最后更新 2024年10月22日spring boot DAO之Hibernate
依赖
org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java
application-database.properties
#初始化数据库的时候,如果错误,是否继续启动。spring.datasource.continue-on-error=false#jdbc driver.默认通过uri来自动检测。spring.datasource.driver-class-name=com.mysql.jdbc.Driver#jdbc url.连接数据库的urispring.datasource.url=jdbc:mysql://172.28.1.227:3310/fc?useUnicode=true&autoReconnect=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useServerPrepStmts=false#数据库连接用户名spring.datasource.username=fcdev#数据连接密码spring.datasource.password=123456#全限定名,连接池。默认自动检测classpathspring.datasource.type=com.zaxxer.hikari.HikariDataSource#sql脚本字符spring.datasource.sql-script-encoding=UTF-8#hibernate配置参数spring.jpa.hibernate.ddl-auto=nonespring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategyspring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategyspring.jpa.hibernate.use-new-id-generator-mappings=true
源码-JpaProperties
@ConfigurationProperties(prefix = "spring.jpa")public class JpaProperties { /** * Additional native properties to set on the JPA provider. */ private Map properties = new HashMap<>(); /** * Mapping resources (equivalent to "mapping-file" entries in persistence.xml). */ private final List mappingResources = new ArrayList<>(); /** * Name of the target database to operate on, auto-detected by default. Can be * alternatively set using the "Database" enum. */ private String databasePlatform; /** * Target database to operate on, auto-detected by default. Can be alternatively set * using the "databasePlatform" property. */ private Database database; /** * Whether to initialize the schema on startup. */ private boolean generateDdl = false; /** * Whether to enable logging of SQL statements. */ private boolean showSql = false; /** * Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the * thread for the entire processing of the request. */ private Boolean openInView; private Hibernate hibernate = new Hibernate();}
源码-HibernateJpaAutoConfiguration
@Configuration@ConditionalOnClass({ LocalContainerEntityManagerFactoryBean.class, EntityManager.class })@Conditional(HibernateEntityManagerCondition.class)@EnableConfigurationProperties(JpaProperties.class)@AutoConfigureAfter({ DataSourceAutoConfiguration.class })@Import(HibernateJpaConfiguration.class)public class HibernateJpaAutoConfiguration { @Order(Ordered.HIGHEST_PRECEDENCE + 20) static class HibernateEntityManagerCondition extends SpringBootCondition { private static final String[] CLASS_NAMES = { "org.hibernate.ejb.HibernateEntityManager", "org.hibernate.jpa.HibernateEntityManager" }; @Override public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) { ConditionMessage.Builder message = ConditionMessage .forCondition("HibernateEntityManager"); for (String className : CLASS_NAMES) { if (ClassUtils.isPresent(className, context.getClassLoader())) { return ConditionOutcome .match(message.found("class").items(Style.QUOTE, className)); } } return ConditionOutcome.noMatch(message.didNotFind("class", "classes") .items(Style.QUOTE, Arrays.asList(CLASS_NAMES))); } }}
SysMenu实体
@Entity@Table(name = "t_sys_menu")public class SysMenu { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column private String name; @Override public String toString() { return "id=" + id + ";name=" + name; }}
TestHibernateDao
@org.springframework.stereotype.Repositorypublic interface TestHibernateDao extends JpaRepository { SysMenu getSysMenuById(Integer id);}
AppContextTest
@RunWith(SpringRunner.class)@SpringBootTestpublic class AppContextTest { @Autowired private TestHibernateDao testHibernateDao; @Test public void hibernateTest(){ SysMenu sysMenu = testHibernateDao.getSysMenuById(1); System.out.println("menuName = " + sysMenu.getName()); }
数据
数据库
源码
检测
参数
字符
实体
密码
时候
用户
用户名
脚本
错误
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
修改完端口号之后服务器无法访问
网络安全训练营文件
三维gis与关系数据库
定时备份数据库到minio
sql数据库简单吗
e52630v4服务器主板
金山区多功能软件开发预算
检查服务器开放端口
数据库字段的许可值集合
达梦数据库技术文档
大华管理服务器型号
社旗定制软件开发哪家好
四川电信省网络安全工程师
软件开发milestone
上海政法大学网络安全
淮安游戏软件开发公司
博世集团软件开发怎么样
公共网络安全管控系统
昆仑通泰云服务器
云南新华互联网科技
软件开发的过程产生的文档
做软件开发用什么cpu
票的宝安全接入服务器地址
租车公司有什么好的服务器
hw是什么意思网络安全
数据库越全面
农村合作医疗无法连接数据库
无锡软件开发资费
安徽应用软件开发公司
视频会议软件开发成本