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

现在网站前台用什么做评论优化

现在网站前台用什么做,评论优化,做网站前台要学什么课程,书法网站模板下载目录 一、JDBC规范【了解】 1. JDBC介绍 2. JDBC示例 3. JDBC的问题 二、MyBatis入门【重点】 1. Mybatis是什么 2. Mybatis使用步骤 3. Mybatis入门案例 1.创建SpringBoot工程 2.创建Mapper 3.功能测试 三、连接池【了解】 1. 什么是连接池 2. 有哪些数据库连接池…

目录

一、JDBC规范【了解】

1. JDBC介绍

2. JDBC示例

3. JDBC的问题

二、MyBatis入门【重点】

1. Mybatis是什么

2. Mybatis使用步骤

3. Mybatis入门案例

1.创建SpringBoot工程

2.创建Mapper

3.功能测试

三、连接池【了解】

1. 什么是连接池

2. 有哪些数据库连接池

3. 如何在项目里使用Druid连接池

四、Lombok【重点】

1. Lombok介绍

2. Lombok用法

3. 使用示例


一、JDBC规范【了解】

1. JDBC介绍

Java DataBase Connectivity,是Java连接数据库,是Sun公司提供的的API规范,用于执行SQL语句。是一切Java操作数据库的基础技术。

Java里的“规范”,通常指的是接口

JDBC的作用:实现Java程序对不同数据库的统一访问

数据库驱动:由数据库厂商提供的,实现了JDBC接口规范的一些API实现类,这些类打成jar包,我们称为驱动包

  • 操作什么数据库,就要有什么驱动包

  • 如果要操作MySQL,就必须有MySQL驱动包:我们有maven坐标

<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version>
</dependency>

2. JDBC示例

准备数据库表

create database if not exists db3;
use db3;    
create table user(id int unsigned primary key auto_increment comment 'ID',name varchar(100) comment '姓名',age tinyint unsigned comment '年龄',gender tinyint unsigned comment '性别, 1:男, 2:女',phone varchar(11) comment '手机号'
) comment '用户表';insert into user(id, name, age, gender, phone) VALUES (null,'白眉鹰王',55,'1','18800000000');
insert into user(id, name, age, gender, phone) VALUES (null,'金毛狮王',45,'1','18800000001');
insert into user(id, name, age, gender, phone) VALUES (null,'青翼蝠王',38,'1','18800000002');
insert into user(id, name, age, gender, phone) VALUES (null,'紫衫龙王',42,'2','18800000003');
insert into user(id, name, age, gender, phone) VALUES (null,'光明左使',37,'1','18800000004');
insert into user(id, name, age, gender, phone) VALUES (null,'光明右使',48,'1','18800000005');

准备实体类

public class User {private Integer id;private String name;private Integer age;private Integer gender;private String phone;//get 和 set方法,略//toString方法,略
}

JDBC示例

package com.itheima;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class DemoJdbc {public static void main(String[] args) throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");//3. 创建SQL执行平台PreparedStatement pstmt = conn.prepareStatement("select * from user");//4. 执行SQLResultSet resultSet = pstmt.executeQuery();//5. 处理结果List<User> userList = new ArrayList<>();while (resultSet.next()) {User user = new User();int id = resultSet.getInt("id");user.setId(id);String name = resultSet.getString("name");user.setName(name);int age = resultSet.getInt("age");user.setAge(age);int gender = resultSet.getInt("gender");user.setGender(gender);String phone = resultSet.getString("phone");user.setPhone(phone);userList.add(user);}//6. 释放资源resultSet.close();pstmt.close();conn.close();userList.forEach(System.out::println);}
}

3. JDBC的问题

  • 硬编码问题:数据库连接信息等等参数,都在Java源码里写死了。如果将来部署到生产环境后,需要调整配置,就不得不修改源码

    Mybatis整合SpringBoot,把所有参数写到了配置文件,可以很方便的修改,而不用修改源码

  • 操作太繁琐:执行一条SQL语句,要写十几行甚至几十行代码

    Mybatis对JDBC做了再封装,执行一条SQL只需要很少的代码就能实现

  • 性能不够强:每次操作数据库,Java程序都会与数据库建立连接、创建Connection对象;操作完成要释放关闭掉。在数据库操作高峰期,会有频繁的对象创建与销毁,非常消耗性能

    Mybatis使用了连接池技术解决这个问题

二、MyBatis入门【重点】

1. Mybatis是什么

MySQL是持久层Dao层的框架,它用于简化JDBC的操作。

拓展:目前持久层的框架,常见的有:

  • Mybatis:目前国内最流行的Dao层框架

  • Hibernate:国内使用的少了,国外使用的很多。国内的一些老项目,可能使用的是Hibernate

  • SpringData JPA:对持久层的技术再封装,比如对Hibernate再封装,提供了更简便的操作

2. Mybatis使用步骤

  1. 准备数据库和表:前边JDBC里已经准备过了,略

  2. 准备一个maven工程:

    创建一个SpringBoot工程,添加依赖、配置文件、引导类

  3. 使用Mybatis操作数据库

    准备实体类:一张表通常要准备一个类。类的属性和表的字段要对应

    修改配置文件:准备数据库的连接信息,包括驱动类名、地址、帐号、密码

    编写一个接口,接口里写一个方法,方法上配置SQL语句

    调用这个接口的方法,就可以了

3. Mybatis入门案例

1.创建SpringBoot工程

如果要创建空的maven工程,改造成SpringBoot工程,只需要三件事:

  • 依赖:SpringBoot父工程坐标和起步依赖

<!-- SpringBoot父工程坐标 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version></parent><dependencies><!--mybatis的起步依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><!-- mysql驱动包, 刚刚发布的最新版本的驱动包--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version></dependency><!--springboot单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
  • 配置:创建一个名称为application.properties的文件,放到src\main\resources目录里

  • 引导类:创建一个引导类,固定写法

@SpringbootApplication
public class 引导类名{public static void main(String[] args){SpringApplication.run(引导类.class, args);}
}

准备配置文件

修改application.properties文件,添加如下配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db3
spring.datasource.username=root
spring.datasource.password=root

准备实体类

前边JDBC部分已经创建了User类,直接复制过来使用即可

2.创建Mapper

package com.itheima.mapper;import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;/*** 1. Mapper接口,名称通常是XxxMapper,比如UserMapper、DeptMapper* 2. Mapper接口,上边加@Mapper注解,目的是让SpringBoot扫描这个注解,生成它的对象放到IoC容器里。类似于@Controller、@Service*/
@Mapper
public interface UserMapper {/*** 查询所有用户,得到List<user>*/@Select("select * from user")List<User> queryAll();
}

3.功能测试

注意:

  • 单元测试类上需要加@SpringBootTest,然后才可以在测试类里使用@Autowired注入

package com.itheima;import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
public class MybatisTest {@Autowiredprivate UserMapper userMapper;@Testpublic void testQueryAll(){List<User> userList = userMapper.queryAll();userList.forEach(System.out::println);}
}

三、连接池【了解】

1. 什么是连接池

池化思想,用于提供有限数量的资源对象,重复利用,可以减少频繁创建对象与销毁对象的开销。

  • 创建池子:在池子里初始化一堆对象,备用

  • 使用的时候:如果需要使用,就从池子里取出一个进行使用;使用完成,再把对象交还到池子里

  • 例如:线程池,数据库连接池

数据库连接池:

  • 只需要池子里准备少量的Connection连接对象,就可以支持海量的数据库操作。因为这些对象是可以循环使用的

  • 避免频繁创建Connection与数据库建立连接所造成的资源开销,从而大大提升性能

2. 有哪些数据库连接池

  • DBCP:比较早的连接池,早期Tomcat内置的有这种连接池

  • C3P0:使用相对广泛的连接池

  • Druid:德鲁伊,Alibaba提供的连接池技术,它以丰富的功能著称,除了连接池的基本功能,还具备数据库的监控能力

  • HikariCP:以性能著称的连接池,SpringBoot官方内置了HikariCP连接池,默认使用的

所有连接都有相同的使用规范:

  • 所有连接池类都必须实现javax.sql.DataSource接口

  • 从任意连接池里获取连接的方法,都是getConnection()

3. 如何在项目里使用Druid连接池

1.添加druid的起步依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.8</version>
</dependency>

2.配置一下,指定使用Druid连接池:只要修改application.properties文件

#没有指定使用哪种连接池,默认使用的是HikariCP
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_homework
#spring.datasource.username=root
#spring.datasource.password=root
#如果想指定使用Druid连接池
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/mybatis_homework
spring.datasource.druid.username=root
spring.datasource.druid.password=root

四、Lombok【重点】

1. Lombok介绍

Lombok是一个插件,目前已经被idea内置进去了。

用于在代码编译过程中,帮我们生成一些代码。从而让我们的代码更简洁

2. Lombok用法

  1. 添加lombok的依赖坐标

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

2.使用Lombok简化代码:通过注解实现的

  • @Data:加在实体类上,Lombok会帮我们给实体类生成无参构造、所有成员变量的get和set方法、toString、equals、hashCode等等方法

  • @NoArgsConstructor:加在实体类上,Lombok会帮我们生成无参构造

  • @AllArgsConstructor:加在实体类上,Lombok会帮我们生成全参构造

  • @Getter:生成get方法的。可以加在类上,也可以加在某个成员变量上

  • @Setter:生成set方法的。可以加在类上,也可以加在某个成员变量上

3. 使用示例

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {private Integer id;private String username;private String password;private String name;private Integer gender;private String image;private Integer job;
}


文章转载自:
http://dinncoveliger.wbqt.cn
http://dinnconontraditional.wbqt.cn
http://dinncobereavement.wbqt.cn
http://dinncotetrawickmanite.wbqt.cn
http://dinncocloudwards.wbqt.cn
http://dinncoarcifinious.wbqt.cn
http://dinncotoltec.wbqt.cn
http://dinncocopt.wbqt.cn
http://dinncoadn.wbqt.cn
http://dinncowarehouseman.wbqt.cn
http://dinncounreceptive.wbqt.cn
http://dinncomesophyte.wbqt.cn
http://dinncoagency.wbqt.cn
http://dinncoeager.wbqt.cn
http://dinncoreunion.wbqt.cn
http://dinncofoundress.wbqt.cn
http://dinncoferula.wbqt.cn
http://dinncohashery.wbqt.cn
http://dinncoalchemize.wbqt.cn
http://dinncocrosscurrent.wbqt.cn
http://dinncosynostosis.wbqt.cn
http://dinncocockabully.wbqt.cn
http://dinncomuch.wbqt.cn
http://dinncomilkman.wbqt.cn
http://dinncogreyfish.wbqt.cn
http://dinncoisopentyl.wbqt.cn
http://dinnconotable.wbqt.cn
http://dinncofaunal.wbqt.cn
http://dinncostylohyoid.wbqt.cn
http://dinncoaesculapius.wbqt.cn
http://dinncosheepfold.wbqt.cn
http://dinncotenantlike.wbqt.cn
http://dinncostrangulation.wbqt.cn
http://dinncoschoolbook.wbqt.cn
http://dinncoalthorn.wbqt.cn
http://dinncorepatriation.wbqt.cn
http://dinncofilmmaking.wbqt.cn
http://dinncowhee.wbqt.cn
http://dinncoabye.wbqt.cn
http://dinncoexecrably.wbqt.cn
http://dinncochthonophagia.wbqt.cn
http://dinncocontact.wbqt.cn
http://dinncolucidness.wbqt.cn
http://dinncosootily.wbqt.cn
http://dinncokcmg.wbqt.cn
http://dinncowafflestompers.wbqt.cn
http://dinncononuniformity.wbqt.cn
http://dinncodiseuse.wbqt.cn
http://dinncopotamology.wbqt.cn
http://dinncodoomful.wbqt.cn
http://dinncocromlech.wbqt.cn
http://dinncofactuality.wbqt.cn
http://dinncoclubby.wbqt.cn
http://dinncoparaprofessional.wbqt.cn
http://dinncoilka.wbqt.cn
http://dinncoscapiform.wbqt.cn
http://dinncohomochromatism.wbqt.cn
http://dinncocymar.wbqt.cn
http://dinncocarbachol.wbqt.cn
http://dinncopentathlon.wbqt.cn
http://dinncosequentially.wbqt.cn
http://dinncooleiferous.wbqt.cn
http://dinncohenwife.wbqt.cn
http://dinncoselect.wbqt.cn
http://dinncopinny.wbqt.cn
http://dinncopopout.wbqt.cn
http://dinncoconj.wbqt.cn
http://dinncosorrily.wbqt.cn
http://dinncoocher.wbqt.cn
http://dinncopistole.wbqt.cn
http://dinncoreddish.wbqt.cn
http://dinncokarpinskyite.wbqt.cn
http://dinncospend.wbqt.cn
http://dinncothinly.wbqt.cn
http://dinncoopercula.wbqt.cn
http://dinncohouseguest.wbqt.cn
http://dinncoforficated.wbqt.cn
http://dinncocincture.wbqt.cn
http://dinncostonily.wbqt.cn
http://dinnconourishing.wbqt.cn
http://dinncoenclose.wbqt.cn
http://dinncoaeolic.wbqt.cn
http://dinncodowndraft.wbqt.cn
http://dinncodear.wbqt.cn
http://dinncochrismal.wbqt.cn
http://dinncodoubt.wbqt.cn
http://dinncogmbh.wbqt.cn
http://dinncoreimpose.wbqt.cn
http://dinncohaemorrhoidectomy.wbqt.cn
http://dinnconasa.wbqt.cn
http://dinncomenhaden.wbqt.cn
http://dinncotarget.wbqt.cn
http://dinncoadducent.wbqt.cn
http://dinncopigheaded.wbqt.cn
http://dinncocoprolagnia.wbqt.cn
http://dinncosuborning.wbqt.cn
http://dinncomortarboard.wbqt.cn
http://dinncoclassic.wbqt.cn
http://dinncocamaron.wbqt.cn
http://dinncoeconomics.wbqt.cn
http://www.dinnco.com/news/96254.html

相关文章:

  • 中国百强城市榜单发布2021seo优化排名百度教程
  • 太原视频剪辑培训机构哪个好seo引擎优化工具
  • 网站建设空间和服务器方式怎么在网上做推广
  • 深圳网站建设 东毅虎微信群拉人的营销方法
  • 做外贸网站租什么服务器湖南平台网站建设制作
  • jsp动态网站开发教材网页设计工资一般多少
  • php网站开发培训学校外贸订单怎样去寻找
  • 企业网站备案多少钱小时seo
  • 网页设计与网站建设试题长春seo外包
  • 苏州建设公司网站搜狗站长推送工具
  • 北京网站开发怎么做台州seo排名优化
  • 动态网站开发网络课程设计网站如何推广营销
  • 营销型网站建设与推广常州seo
  • 响应式网站视频怎么做seo1域名查询
  • 一个网站如何做双语seo优化视频教程
  • 网站如何做关键词seo优化seo优化的技巧
  • wordpress收费内容seo外链增加
  • 在哪里可以做企业官网郑州技术支持seo
  • 全国企业管理信息系统网站推广网站要注意什么
  • 上海网页制作培训学校杭州上城区抖音seo如何
  • 如何去推广自己的产品网站seo推广seo教程
  • 做影视网站怎么赚钱如何搭建自己的网站
  • 诸城市党的建设网站百度优化大师
  • wordpress付费内容专业网站推广优化
  • java和网站建设怎么做神马搜索排名seo
  • 做下一个盗版小说网站太原百度快照优化排名
  • asp门户网站源码域名被墙查询检测
  • 做暧昧网站东营网站建设费用
  • 免费网站设计 优帮云怎么让百度收录网址
  • 拍拍网的网站建设贷款客户大数据精准获客