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

嘉兴网站设计公司网站开发培训中心

嘉兴网站设计公司,网站开发培训中心,做个有用网站,软件开发外包公司好不好目录 前言 1入门 1.1 入门程序实现 1.2 数据准备 ​编辑 1.3 配置Mybatis 1.4 编写SQL语句 1.5 单元测试 1.6 解决SQL警告与提示 2. JDBC介绍(了解) 2.1 介绍 2.2 代码 2.3 问题分析 2.4 技术对比 3. 数据库连接池 3.1 介绍 3.2 产品 4. lombok 4.1 介绍 4.…目录 前言 1入门 1.1 入门程序实现 1.2 数据准备 ​编辑 1.3 配置Mybatis 1.4 编写SQL语句 1.5 单元测试 1.6 解决SQL警告与提示 2. JDBC介绍(了解) 2.1 介绍 2.2 代码 2.3 问题分析 2.4 技术对比 3. 数据库连接池 3.1 介绍 3.2 产品 4. lombok 4.1 介绍 4.2 使用 前言 在客户端工具中编写增删改查的SQL语句发给MySQL数据库管理系统由数据库管理系统执行SQL语句并返回执行结果。 增删改操作返回受影响行数 查询操作返回结果集(查询的结果) 首先 什么是MyBatis? MyBatis是一款优秀的 持久层 框架用于简化JDBC的开发。 MyBatis本是 Apache的一个开源项目iBatis2010年这个项目由apache迁移到了google code并且改名为MyBatis 。2013年11月迁移到Github。 官网地址 https://mybatis.org/mybatis-3/zh/index.html 一个是持久层另一个是框架。 持久层指的是就是数据访问层(dao)是用来操作数据库的。 框架是一个半成品软件是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、可拓展。 1入门 使用Mybatis查询所有用户数据。 之前可以在图形化客户端工具中编写SQL查询代码发送给数据库执行数据库执行后返回操作结果。 图形化工具会把数据库执行的查询结果使用表格的形式展现出来.现在使用Mybatis操作数据库就是在Mybatis中编写SQL查询代码发送给数据库执行数据库执行后返回结果。 Mybatis会把数据库执行的查询结果使用实体类封装起来一行记录对应一个实体类对象 Mybatis操作数据库的步骤 准备工作(创建springboot工程、数据库表user、实体类User) 引入Mybatis的相关依赖配置Mybatis(数据库连接信息) 编写SQL语句(注解/XML) 1.1 入门程序实现 创建springboot工程并导入 mybatis的起步依赖、mysql的驱动包。 项目工程创建完成后自动在pom.xml文件中导入Mybatis依赖和MySQL驱动依赖 !-- 仅供参考只粘贴了pom.xml中部分内容 -- dependencies!-- mybatis起步依赖 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.3.0/version/dependency!-- mysql驱动包依赖 --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency!-- spring单元测试 (集成了junit) --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency /dependencies 1.2 数据准备 创建用户表user并创建对应的实体类User。 -- 用户表 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; //id主键private String name; //姓名private Short age; //年龄private Short gender; //性别private String phone; //手机号//省略GET, SET方法 } 1.3 配置Mybatis 在之前使用图形化客户端工具连接MySQL数据库时需要配置 连接数据库的四大参数 MySQL驱动类 登录名 密码 数据库连接字符串 基于上述分析在Mybatis中要连接数据库同样也需要以上4个参数配置。 在springboot项目中可以编写application.properties文件配置数据库连接信息。我们要连接数据库就需要配置数据库连接的基本信息包括driver-class-name、url 、usernamepassword。 在入门程序中大家可以直接这么配置后面会介绍什么是驱动。 application.properties: #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/mybatis #连接数据库的用户名 spring.datasource.usernameroot #连接数据库的密码 spring.datasource.password1234 上述的配置可以直接网上找  尽量复制过去别敲。 全部都是 spring.datasource.xxxx 开头。 1.4 编写SQL语句 在创建出来的springboot工程中在引导类所在包下在创建一个包 mapper。在mapper包下创建一个接口 UserMapper 这是一个持久层接口Mybatis的持久层接口规范一般都叫 XxxMapper。 UserMapper import com.itheima.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List;Mapper public interface UserMapper {//查询所有用户数据Select(select id, name, age, gender, phone from user)public ListUser list();} Mapper注解表示是mybatis中的Mapper接口 程序运行时框架会自动生成接口的实现类对象(代理对象)并给交Spring的IOC容器管理 Select注解代表的就是select查询用于书写select查询语句 1.5 单元测试 在创建出来的SpringBoot工程中在src下的test目录下已经自动帮我们创建好了测试类 并且在测试类上已经添加了注解 SpringBootTest代表该测试类已经与SpringBoot整合。 该测试类在运行时会自动通过引导类加载Spring的环境IOC容器。我们要测试那个bean对象就可以直接通过Autowired注解直接将其注入进行然后就可以测试了。 测试类代码如下 SpringBootTest public class MybatisQuickstartApplicationTests {Autowiredprivate UserMapper userMapper;Testpublic void testList(){ListUser userList userMapper.list();for (User user : userList) {System.out.println(user);}}} 运行结果 User{id1, name白眉鹰王, age55, gender1, phone18800000000} User{id2, name金毛狮王, age45, gender1, phone18800000001} User{id3, name青翼蝠王, age38, gender1, phone18800000002} User{id4, name紫衫龙王, age42, gender2, phone18800000003} User{id5, name光明左使, age37, gender1, phone18800000004} User{id6, name光明右使, age48, gender1, phone18800000005} 1.6 解决SQL警告与提示 默认在UserMapper接口上加的Select注解中编写SQL语句是没有提示的。 如果想让idea给提示对应的SQL语句需要在IDEA中配置与MySQL数据库的链接。 默认在UserMapper接口上的Select注解中编写SQL语句是没有提示的。如果想让idea给出提示可以做如下配置 配置完成之后发现SQL语句中的关键字有提示了但还存在不识别表名(列名)的情况 产生原因Idea和数据库没有建立连接不识别表信息 解决方案在Idea中配置MySQL数据库连接  不理他也没事   此做法只用于强迫症 在配置的时候指定连接那个数据库如上图所示连接的就是mybatis数据库。   2. JDBC介绍(了解) 2.1 介绍 所以 通过Mybatis可以很方便的进行数据库的访问操作 但是要明白其实java语言操作数据库呢只能通过一种方式使用sun公司提供的 JDBC 规范。 Mybatis框架就是对原始的JDBC程序的封装。 那到底什么是JDBC呢接下来介绍一下。 JDBC ( Java DataBase Connectivity )就是使用Java语言操作关系型数据库的一套API。 本质 sun公司官方定义的一套操作所有关系型数据库的规范即接口。 各个数据库厂商去实现这套接口提供数据库驱动jar包。 我们可以使用这套接口(JDBC)编程真正执行的代码是驱动jar包中的实现类。 2.2 代码 下面是JDBC程序操作数据库的操作步骤  如下 注册驱动 获取连接对象 执行SQL语句返回执行结果 处理执行结果 释放资源 在pom.xml文件中已引入MySQL驱动依赖我们直接编写JDBC代码即可 JDBC具体代码实现 import com.itheima.pojo.User; import org.junit.jupiter.api.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List;public class JdbcTest {Testpublic void testJdbc() throws Exception {//1. 注册驱动Class.forName(com.mysql.cj.jdbc.Driver);//2. 获取数据库连接String urljdbc:mysql://127.0.0.1:3306/mybatis;String username root;String password 1234;Connection connection DriverManager.getConnection(url, username, password);//3. 执行SQLStatement statement connection.createStatement(); //操作SQL的对象String sqlselect id,name,age,gender,phone from user;ResultSet rs statement.executeQuery(sql);//SQL查询结果会封装在ResultSet对象中ListUser userList new ArrayList();//集合对象用于存储User对象//4. 处理SQL执行结果while (rs.next()){//取出一行记录中id、name、age、gender、phone下的数据int id rs.getInt(id);String name rs.getString(name);short age rs.getShort(age);short gender rs.getShort(gender);String phone rs.getString(phone);//把一行记录中的数据封装到User对象中User user new User(id,name,age,gender,phone);userList.add(user);//User对象添加到集合}//5. 释放资源statement.close();connection.close();rs.close();//遍历集合for (User user : userList) {System.out.println(user);}} } DriverManager(类)数据库驱动管理类。 作用 注册驱动 创建java代码和数据库之间的连接即获取Connection对象 Connection(接口)建立数据库连接的对象 作用用于建立java程序和数据库之间的连接 Statement(接口) 数据库操作对象(执行SQL语句的对象)。 作用用于向数据库发送sql语句 ResultSet(接口)结果集对象一张虚拟表 作用sql查询语句的执行结果会封装在ResultSet中 通过上述代码看到直接基于JDBC程序来操作数据库代码及其繁琐在项目开发中很少使用。 在项目开发中通常会使用Mybatis这类的高级技术来操作数据库从而简化数据库操作、提高开发效率。 2.3 问题分析 原始的JDBC程序存在以下几点问题 数据库链接的四要素(驱动、链接、用户名、密码)全部硬编码在java代码中 查询结果的解析及封装非常繁琐 每一次查询数据库都需要获取连接,操作完毕后释放连接, 资源浪费, 性能降低 2.4 技术对比 分析了JDBC的缺点之后来看一下在mybatis中是如何解决这些问题的 数据库连接四要素(驱动、链接、用户名、密码)都配置在springboot默认的配置文件 application.properties中 查询结果的解析及封装由mybatis自动完成映射封装无需关注 在mybatis中使用了数据库连接池技术从而避免了频繁的创建连接、销毁连接而带来的资源浪费。 如图 使用SpringBootMybatis的方式操作数据库能够提升开发效率、降低资源浪费 而对于Mybatis来说在开发持久层程序操作数据库时需要重点关注以下两个方面 application.properties #驱动类名称 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #数据库连接的url spring.datasource.urljdbc:mysql://localhost:3306/mybatis #连接数据库的用户名 spring.datasource.usernameroot #连接数据库的密码 spring.datasource.password1234 Mapper接口编写SQL语句 Mapper public interface UserMapper {Select(select id, name, age, gender, phone from user)public ListUser list(); } 3. 数据库连接池 前面的mybatis中使用了数据库连接池技术避免频繁的创建连接、销毁连接而带来的资源浪费。 下面就具体的了解下数据库连接池。 3.1 介绍 我理解就是 共享单车 牺牲一部分空间 来节约时间  复用性强 没有使用数据库连接池 客户端执行SQL语句要先创建一个新的连接对象然后执行SQL语句SQL语句执行后又需要关闭连接对象从而释放资源每次执行SQL时都需要创建连接、销毁链接这种频繁的重复创建销毁的过程是比较耗费计算机的性能 数据库连接池是个容器负责分配、管理数据库连接 程序在启动时会在数据库连接池(容器)中创建一定数量的Connection对象 允许应用程序重复使用一个现有的数据库连接而不是再重新建立一个 客户端在执行SQL时先从连接池中获取一个Connection对象然后在执行SQL语句SQL语句执行完之后释放Connection时就会把Connection对象归还给连接池Connection对象可以复用 释放空闲时间超过最大空闲时间的连接来避免因为没有释放连接而引起的数据库连接遗漏 客户端获取到Connection对象了但是Connection对象并没有去访问数据库(处于空闲)数据库连接池发现Connection对象的空闲时间 连接池中预设的最大空闲时间此时数据库连接池就会自动释放掉这个连接对象 数据库连接池的好处 资源重用 提升系统响应速度 避免数据库连接遗漏 3.2 产品 要怎么样实现数据库连接池呢 参考官方地址https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 在pom.xml文件中引入依赖 在application.properties中引入数据库连接配置 4. lombok 4.1 介绍 Lombok是一个实用的Java类库可以通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码。 通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法并可以自动化生成日志变量简化java开发、提高效率。 注解作用Getter/Setter为所有的属性提供get/set方法ToString会给类自动生成易阅读的 toString 方法EqualsAndHashCode根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法Data提供了更综合的生成代码功能Getter Setter ToString EqualsAndHashCodeNoArgsConstructor为实体类生成无参的构造器方法AllArgsConstructor 为实体类生成除了static修饰的字段之外带有各参数的构造器方法。 data最重要  工作中一般用到的就是data 但Data注解中不包含全参构造方法通常在实体类上还会添加上全参构造、无参构造 4.2 使用 第1步在pom.xml文件中引入依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId /dependency 在springboot的父工程中已经集成了lombok并指定了版本号故当前引入依赖时不需要指定version  第2步在实体类上添加注解。 ------ 在实体类上添加了Data注解那么这个类在编译时期就会生成getter/setter、equals、hashcode、toString等方法。 Lombok的注意事项 Lombok会在编译时会自动生成对应的java代码 在使用lombok时还需要安装一个lombok的插件新版本的IDEA中自带
http://www.ho-use.cn/article/10813914.html

相关文章:

  • 服务器在国外的网站电商设计师发展前景
  • 那个网站建设中国企业招聘网
  • flash网站标题和网址做亳州旅游网站的目的
  • 微信公众号php网站开发网页设计需要考什么证书
  • 做中英双语切换的网站公众号图文模板免费
  • 深圳网站设计招聘局网站建设管理制度
  • 网站优化关键词是怎么做的线上平台如何搭建
  • 网络做网站如何盈利安泽网站建设
  • 做明星网站设计网站接单
  • 网站建设优化服务机构查关键词热度的网站
  • 九江建企业网站做一份seo网站诊断
  • 女人和男人做床上爱网站国内wordpress空间
  • 旅游网站手机模板网站公司怎么做的好
  • 海南建设银行官网招聘网站企业营业执照查询系统入口
  • 做网站编辑的感受后台登陆wordpress
  • 温州网站开发定制网站建设首期款
  • 一个外国人做汉字网站网站建设做得好的公司
  • 微网站开发需要多少费用深圳企业宣传片制作
  • 邯郸网站建设的企业外贸网站建设视频
  • 在门户网站建设上的讲话临平做网站
  • 大连个人网站建设wordpress文章导入公众号
  • 天津网站建设基本流程加强网站信息内容建设管理
  • 优秀的网页设计网站app大全视频app大全
  • 怎么制作网站设计wordpress 文章新窗口
  • 什么是企业营销型网站做防护信息的网站
  • jquery在网站开发实例运用建网站网站
  • 深圳市宝安区建设局网站搜索引擎优化是什么工作
  • 怎样把建好的网站上传到互联网营销型网站的付费推广渠道
  • 建设银行的官方网站电话小公司管理软件
  • 空气源热泵热水器网站建设网站建设多少钱一年