请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

SpringBoot与数据层

[复制链接]
查看: 80|回复: 0

1万

主题

2万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
48035
发表于 2019-12-3 02:36 | 显示全部楼层 |阅读模式
1、JDBC
  1. org.springframework.bootspring‐boot‐starter‐jdbcmysqlmysql‐connector‐javaruntime
复制代码
  1. spring:datasource:username: rootpassword: 123456url: jdbc:mysql://192.168.15.22:3306/jdbcdriver‐class‐name: com.mysql.jdbc.Driver
复制代码
成果:
默许是用org.apache.tomcat.jdbc.pool.DataSource作为数据源;
数据源的相关设备都在DataSourceProperties里面;
自动设备道理:
org.springframework.boot.autoconfigure.jdbc:
1、参考DataSourceConfiguration,按照设备建立数据源,默许操纵Tomcat毗连池;可以操纵
spring.datasource.type指定自界说的数据源典范;
2、SpringBoot默答应以支持;
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、
3、自界说数据源典范
  1. /*** Generic DataSource configuration.*/@ConditionalOnMissingBean(DataSource.class)@ConditionalOnProperty(name = "spring.datasource.type")static class Generic {@Beanpublic DataSource dataSource(DataSourceProperties properties) {//操纵DataSourceBuilder建立数据源,操纵反射建立响应type的数据源,而且绑定相关属性return properties.initializeDataSourceBuilder().build();}}
复制代码
4、DataSourceInitializer:ApplicationListener;
感化:
1)、runSchemaScripts();运转建表语句;
2)、runDataScripts();运转插入数据的sql语句;
默许只需要将文件命名为:
  1. schema‐*.sql、data‐*.sql默许法则:schema.sql,schema‐all.sql;可以操纵schema:‐ classpath:department.sql指定位置
复制代码
5、操纵数据库:自动设备了JdbcTemplate操纵数据库
2、整合Druid数据源
  1. 导入druid数据源@Configurationpublic class DruidConfig {@ConfigurationProperties(prefix = "spring.datasource")@Beanpublic DataSource druid(){return new DruidDataSource();}//设备Druid的监控//1、设备一个治理背景的Servlet@Beanpublic ServletRegistrationBean statViewServlet(){ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");Map initParams = new HashMap();initParams.put("loginUsername","admin");initParams.put("loginPassword","123456");initParams.put("allow","");//默许就是答应全数拜候initParams.put("deny","192.168.15.21");bean.setInitParameters(initParams);return bean;}//2、设备一个web监控的filter@Beanpublic FilterRegistrationBean webStatFilter(){FilterRegistrationBean bean = new FilterRegistrationBean();bean.setFilter(new WebStatFilter());Map initParams = new HashMap();initParams.put("exclusions","*.js,*.css,/druid/*");bean.setInitParameters(initParams);bean.setUrlPatterns(Arrays.asList("/*"));return bean;}}
复制代码
3、整合MyBatis
  1. org.mybatis.spring.bootmybatis‐spring‐boot‐starter1.3.1
复制代码
SpringBoot与数据层  游戏 1424223-20191202222208224-1741678802



步伐:
1)、设备数据源相关属性(见上一节Druid)
2)、给数据库建表
3)、建立JavaBean
4)、注解版
  1. //指定这是一个操纵数据库的mapper@Mapperpublic interface DepartmentMapper {@Select("select * from department where id=#{id}")public Department getDeptById(Integer id);@Delete("delete from department where id=#{id}")public int deleteDeptById(Integer id);@Options(useGeneratedKeys = true,keyProperty = "id")@Insert("insert into department(departmentName) values(#{departmentName})")public int insertDept(Department department);@Update("update department set departmentName=#{departmentName} where id=#{id}")public int updateDept(Department department);}
复制代码
题目:
自界说MyBatis的设备法则;给容器中增加一个ConfigurationCustomizer;
  1. @org.springframework.context.annotation.Configurationpublic class MyBatisConfig {@Beanpublic ConfigurationCustomizer configurationCustomizer(){return new ConfigurationCustomizer(){@Overridepublic void customize(Configuration configuration) {configuration.setMapUnderscoreToCamelCase(true);}};}}
复制代码
  1. 操纵MapperScan批量扫描全数的Mapper接口;@MapperScan(value = "com.atguigu.springboot.mapper")@SpringBootApplicationpublic class SpringBoot06DataMybatisApplication {public static void main(String[] args) {SpringApplication.run(SpringBoot06DataMybatisApplication.class, args);}}
复制代码
5)、设备文件版
  1. mybatis:config‐location: classpath:mybatis/mybatis‐config.xml 指定全局设备文件的位置mapper‐locations: classpath:mybatis/mapper/*.xml 指定sql映照文件的位置
复制代码
更多操纵参照
http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
4、整合SpringData JPA
1)、SpringData简介
SpringBoot与数据层  游戏 1424223-20191202222400701-1009184775



2)、整合SpringData JPA
JPA:ORM(Object Relational Mapping);
1)、编写一个实体类(bean)和数据表举行映照,而且设备好映照关系;
  1. //操纵JPA注解设备映照关系@Entity //告诉JPA这是一个实体类(和数据表映照的类)@Table(name = "tbl_user") //@Table来指定和哪个数据表对应;假如省略默许表名就是user;public class User {@Id //这是一个主键@GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键private Integer id;@Column(name = "last_name",length = 50) //这是和数据表对应的一个列private String lastName;@Column //省略默许列名就是属性名private String email;
复制代码
2)、编写一个Dao接口来操纵实体类对应的数据表(Repository)
  1. //继续JpaRepository来完成对数据库的操纵public interface UserRepository extends JpaRepository {}
复制代码
3)、底子的设备JpaProperties
  1. spring:jpa:hibernate:# 更新大要建立数据表结构ddl‐auto: update# 控制台表示SQLshow‐sql: true
复制代码
免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表