当前位置: 首页 > news >正文

网站站点儋州市住房和城乡建设局官方网站

网站站点,儋州市住房和城乡建设局官方网站,沙田镇仿做网站,大专软件技术工资一般多少1.前言 很多同学进入公司就开始参与项目开发,大多数情况是对某个项目进行维护或者需求迭代,能够从0到1参与到项目中的机会很少,因此并没有多少机会了解某些技术的运行机制。换句话说,有的面试官在面试的时候就会探讨深层的技术问题…

1.前言

        很多同学进入公司就开始参与项目开发,大多数情况是对某个项目进行维护或者需求迭代,能够从0到1参与到项目中的机会很少,因此并没有多少机会了解某些技术的运行机制。换句话说,有的面试官在面试的时候就会探讨深层的技术问题,而不是关心你知道什么业务,怎么用技术去实现业务。

        今天要讲的就是SpringBoot操纵数据库,这个大家做得比较多的就是去写一个Dao的类,然后在mapper.xml文件里面写SQL,最后封装成Service供Controller调。如果让你去搭建好这个项目的基础框架,你该怎么做呢,我们今天就来看看。

2.Spring架构

        下面这张图是我最喜欢看的一张图,也是对Spring体系结构描述最准确的一张图,大家学习Spring了解最多的可能是IOC、DI、AOP这些名词,其实Spring还有一个很强大的组件就是Spring Data。

         如果是只用Spring,则需要采用下面依赖,就可以进行数据库的访问了:

 <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId></dependency>

3.SpringBoot操纵数据库

        现在的项目一般都是基于SpringBoot的,我们只需通过下面的依赖即可访问数据源:

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

        点进这个依赖进去看,会发现它又依赖于:

 <dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.4.2</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.4.RELEASE</version><scope>compile</scope></dependency>

        我们知道了SpringBoot的默认连接池用的HikariCP。因为我们连接的是mysql数据库,因此除了依赖spring-boot-starter-jdbc,还需要依赖:

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

        下面在数据库建一张student的表(这个不需要讲如何建吧,如果需要欢迎留言),然后写一个controller类如下:

@RestController
public class StudentController {@AutowiredJdbcTemplate jdbcTemplate;@GetMapping("/students")public List<Map<String,Object>> userList(){String sql = "select * from student";List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);return maps;}
}

        启动SpringBoot,如何建一个SpringBoot项目如果不会可以参考我的文章:

        在浏览器中输入:http://localhost:8080/students

        结果就来了,如何结果没出来的欢迎留言,我会及时解答。这个时候看控制台的输出,会发现是使用的HikariPool

2023-04-13 22:47:56.526  INFO 22916 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-04-13 22:47:58.365  INFO 22916 --- [nio-8080-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.

4.配置数据库连接池Druid

不用SpringBoot自带的连接池,使用阿里巴巴的Druid连接池,添加pom依赖:

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version>
</dependency>

在application.yml里面增加数据源类型:

 type: com.alibaba.druid.pool.DruidDataSource

重新启动服务,调用上面的接口:

2023-04-13 22:57:26.563  INFO 18764 --- [nio-8080-exec-1] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

5.使用MyBatis

好的数据访问离不开优秀的持久层框架,这时就要用MyBatis,用了它不仅可以将SQL和Java代码分离,还能非常方便的讲Java实体与数据库数据做映射。添加pom依赖:

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.2</version>
</dependency>

写一个实体类接收数据,字段和数据库里一致即可,这里就不贴代码了。再写一个接口:

@Mapper
public interface StudentDao {List<Student> getAll();
}

在mapper.xml文件里写:

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.dao.StudentDao"><select id="getAll" resultType="com.example.entity.Student">select * from student</select>
</mapper>

最后在controller里写:

   @GetMapping("/studentList")public List<Student> studentList(){List<Student> list = studentDao.getAll();return list;}

总结

        今天一步步从架构谈起,讲到如何去使用更优秀的连接池以及持久层框架去做数据存储,希望能让大家更清楚这里面的原理。

http://www.yayakq.cn/news/875417/

相关文章:

  • 建网站免费咨询厦门市建设合同备案网站
  • 做网站的要多少钱网站空间服务器排名
  • 徐州网站建设哪家好薇用wordpress 登录界面
  • 自建团队网站开发要多少钱搜索网站
  • 网站模版库网站开发就业
  • 西安网站建设公司有哪些wordpress加载单页面内容
  • 学校网站开发招标网站logo优化
  • 做动画人设有哪些网站可以借鉴阿里云建公司网站
  • 网站建设与维护 书帝国cms获取网站地址
  • 网站开发专业就业好不好网站的超级链接怎么做
  • 湛江建站公司模板东莞市中考管理系统
  • 网站域名使用费wordpress 悬浮 插件
  • 如何联系百度推广seo1视频发布会
  • 案例分析网站手机里编辑 Wordpress
  • 福步外贸论坛app优化网站关键词排名
  • 河北手机网站制作多少钱图片在线制作生成器免费
  • 江苏中小企业网站建设wordpress修改秒速
  • 上海企业建站工具镇江网站seo
  • 网站突然暴增流量wordpress视频播放卡
  • wordpress重新打开多站点网站从建设到运行要多少钱
  • 帝国cms建站实例教程地方网站方案
  • 做网站流量有设计师做的装修效果图的网站
  • 如何做360网站的排名齐齐哈尔市住房城乡建设门户网站
  • 深圳的建站公司安阳文创设计
  • 免费做效果图的网站做培训的网站
  • 深网站建设泉州网站建设网站制作
  • 建设一个地方门户网站网页设计怎么让图片居中
  • 邹城网站建设zczwxx绵阳网站seo
  • 制作网站的视频教程wordpress主题选项框架
  • 南京自助建站公司网站建设制作商