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

做汽车保养的网站电脑培训学校课程

做汽车保养的网站,电脑培训学校课程,过年做啥网站致富,wordpress restapi接口目录 一、JDBC操作回顾 二、什么是MyBatis? 三、MyBatis入门 1、准备工作 (1)创建工程 (2)数据准备 2、配置数据库连接字符串 3、写持久层代码 4、单元测试 (1)使用IDEA自动成成测试类…

目录

一、JDBC操作回顾

二、什么是MyBatis?

三、MyBatis入门

1、准备工作

(1)创建工程

(2)数据准备

2、配置数据库连接字符串

3、写持久层代码

4、单元测试

(1)使用IDEA自动成成测试类

(2)使用程序运行代码,编写controller类,service类

四、常见问题错误

1、SQL错误

2、配置信息错误(检查账户密码)

3、未配置数据库

4、数据库不存在

5、表不存在

6、方法名重复


一、JDBC操作回顾

        新增数据操作代码如下:

public static void main(String[] args) throws SQLException {Scanner sc = new Scanner(System.in);System.out.println("请输入id");int id = sc.nextInt();System.out.println("请输入name");String name = sc.next();//1、建立数据源DataSource dataSource = new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java110?characterEncoding=utf8&&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("123456");//2、和数据库服务器建立连接Connection connection = dataSource.getConnection();//3、构造sqlString sql = "insert into student values(?,?)";//?作为占位符//预处理PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, id);statement.setString(2, name);//4、把构造好的sql发送的数据库服务器里执行int n = statement.executeUpdate();System.out.println(n);//5、回收必要的资源statement.close();connection.close();}

        之前博客的详细介绍:Java的JDBC编程-CSDN博客

        从上述代码和操作流程可以看出来,对于JDBC来说,整个操作都非常繁琐,我们不但要拼接每一个参数,而且还有按照模板代码的方式,一步步的操作数据库,并且每次操作完,还要手动关闭连接等所有的这些操作步骤,都需要再每个方法中重复书写,那有没有一种方法,可以更简单、更方便操作数据库呢?肯定有,这也是我们要学习MyBatis的真正原因,它可以帮助我们更方便、更快速的操作数据库


二、什么是MyBatis?

1MyBatis是一块优秀的 持久层 框架,用于简化JDBC的开发

2MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由Apache迁移到了google code,并且改名为MyBaits。2013年11月迁移到Github

3官网:MyBatis中文网 。

4持久层:指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库的

        简单来说,MyBatis是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库工具


三、MyBatis入门

        MyBatis操作数据库的步骤:

1准备工作(创建Spring Boot工程、数据库表准备、实体类)

2引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)

3编写SQL语句(注解 / XML)

4测试

1、准备工作

(1)创建工程

        创建Spring Boot 工程,并且导入MyBatis的起步依赖、MySQL驱动包

        MyBatis是一个持久层框架,具体的数据存储和数据操作还是在MySQL中操作的,所以需要添加MySQL驱动

        项目工程创建完成后,会自动在pom.xml文件中导入MyBatis依赖和MySQL驱动依赖,如图:

        代码:

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

        它们的版本会随着SpringBoot版本发生变化,SpringBoot 3.X 对应 MyBatis版本为 3.X,对应关系参考:mybatis-spring-boot-autoconfigure – Introduction ,如图:

(2)数据准备

        创建用户表,代码如下:

-- 创建数据库
DROP DATABASE IF EXISTS mybatis_test;CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据
USE mybatis_test;-- 创建表[用户表]
DROP TABLE IF EXISTS userinfo;
CREATE TABLE `userinfo` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`username` VARCHAR ( 127 ) NOT NULL,`password` VARCHAR ( 127 ) NOT NULL,`age` TINYINT ( 4 ) NOT NULL,`gender` TINYINT ( 4 ) DEFAULT '0' COMMENT '1-男 2-女 0-默认',`phone` VARCHAR ( 15 ) DEFAULT NULL,`delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now(),PRIMARY KEY ( `id` ) 
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4; -- 添加用户信息
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'admin', 'admin', 18, 1, '18612340001' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'zhangsan', 'zhangsan', 18, 1, '18612340002' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'lisi', 'lisi', 18, 1, '18612340003' );
INSERT INTO mybatis_test.userinfo ( username, `password`, age, gender, phone )
VALUES ( 'wangwu', 'wangwu', 18, 1, '18612340004' );

        创建对应的实体类,代码如下:

@Data
public class UserInfo {private Integer id;private String username;private String password;private Integer age;private Integer gender;private String phone;private Integer deleteFlag;private Date createTime;private Date updateTime;
}

2、配置数据库连接字符串

        MyBatis中要连接数据库,需要数据库相关的参数配置:MySQL驱动类、登录名、密码、数据库连接字符串

        application.yml文件,配置内容如下:

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=falseusername: rootpassword: 1234driver-class-name: com.mysql.cj.jdbc.Driver

注意事项如果MySQL是 5.X 之前的使用的是 “com.mysql.jdbc.Driver”,如果是大于5.X使用的是“com.mysql.cj.jdbc.Driver”

        application.properties文件,配置内容如下:

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?
characterEncoding=utf8&useSSL=false
#连接数据库的⽤⼾名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234

3、写持久层代码

        在项目中,创建持久层接口UserInfoMapper,如图:

        

        代码如下:

import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserInfoMapper {@Select("select * from userinfo")List<UserInfo> getUserInfoAll();
}

        MyBatis的持久层接口规范一般都叫XxxMapper@Mapper注解表示是MyBatis中的Mapper接口

        程序运行时,MyBatis框架会自动生成接口的实现类对象(代理对象),并交给Spring的IOC容器管理

        @Select注解代表的就是select查询,也就是注解对应方法的具体实现内容

4、单元测试

        在Spring Boot工程下中,src下的test目录中,已经自动帮我们创建好了测试类,我们可以直接使用这个测试类来进行测试,代码如下:

import com.example.mybatisdemo.mapper.UserInfoMapper;
import com.example.mybatisdemo.model.UserInfo;
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
class MybatisDemoApplicationTests {@Autowiredprivate UserInfoMapper userInfoMapper;@Testvoid contextLoads() {List<UserInfo> userInfos = userInfoMapper.getUserInfoAll();System.out.println(userInfos);}}

        测试类添加了注解@SpringBootTest,该测试类在运行时,就会自动加载Spring的运行环境。我们通过@Autowired这个注解,注入我们要测试的类,就可以开始进行测试了

        运行结果如下:

        返回对应的结果,可以看到,只有SQL语句中查询的列中,只有和对应的列名一样,才会有显示(如果和数据库列名一样,就会有显示对应的信息)。如图:

(1)使用IDEA自动成成测试类

        在你要测试的类中,鼠标右键 -> Generate -> Test -> 勾上对应要测试的方法,这里使用UserInfoMapper类做演示,如图:

        点击OK,会在test目录下生成对应的测试类,如图:

        测试类代码如下:

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class UserInfoMapperTest {@Autowiredprivate UserInfoMapper userInfoMapper;@Testvoid getUserInfoAll() {System.out.println(userInfoMapper.getUserInfoAll());}
}

        记得加@SpringBootTest注解

        运行结果如下:

(2)使用程序运行代码,编写controller类,service类

        controller类代码如下:

@RequestMapping("/user")
@RestController
public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/getUserAll")public List<UserInfo> getUserAll() {return userService.getUserAll();}
}

        service类代码如下:

@Service
public class UserService {@Autowiredprivate UserInfoMapper userInfoMapper;public List<UserInfo> getUserAll() {return userInfoMapper.getUserInfoAll();}
}

        浏览器访问:127.0.0.1:8080/user/getUserAll ,结果如下:


四、常见问题错误

1、SQL错误

        如图:下面from和userinfo连在一起,没有空格分开。

        双引号中多些一个空格都不行,不然就会报错,如图:

2、配置信息错误(检查账户密码)

3、未配置数据库

        把application.yml配置内容注释掉,如图:

        测试用例报错如下:创建dataSource失败了,解决方案是检查配置

        程序启动代码报错如下:

        如果配置内容格式不对,如图:

        依然会报错上面这种错误。

4、数据库不存在

        修改配置文件内容,其中这个数据库是不存在的,如图:

        运行测试类代码,报错如下:

5、表不存在

        修改代码如下:

        运行测试类,报错如下:

6、方法名重复

        UserInfoMapper类的方法名重复,修改代码如下:

        运行测试类,报错如下:

http://www.khdw.cn/news/31271.html

相关文章:

  • 子网站建设指数分布的分布函数
  • 网络小说写作网站免费企业网站模板源码
  • 做健身网站步骤百度收录查询方法
  • 网站开发学什么语言腾讯云1元域名
  • 做ebay需要的图片外链网站企业seo案例
  • 手机浏览微网站乐清网站建设
  • 网站高质量链群怎么做可以商用的电视app永久软件
  • 网站流量突然暴增黑帽seo优化
  • 营销型网站建设公司易网拓百度快速排名点击器
  • 建站广告站长工具 站长之家
  • 池州网站建设怎么样电子商务沙盘seo关键词
  • 手机百度 网站提交提高网站排名软件
  • 济南网站定制策划代写
  • 为什么无法再社保网站上做减员郑州做网络优化的公司
  • 专业柳州网站建设哪家便宜平面设计正规培训机构
  • 鸿蒙开发语言seo引擎优化方案
  • 做网站需要学什么惠州市seo广告优化营销工具
  • 金牛区建设局网站沈阳seo整站优化
  • 网站建设实验报告格式网站关键词优化推广哪家好
  • 哈尔滨网站开发需要多少钱产品推广平台排行榜
  • 咨询行业网站开发高质量网站外链平台
  • 在深圳找工作哪个网站好seo查询外链
  • 衢州网站设计制作网络营销师
  • 域名访问不了织梦网站关键词搜索排名查询
  • 开发软件的网站平台站长之家ppt素材
  • 网站设计建设介绍百度竞价推广点击软件
  • 电影网站建设多少钱宁德市房价
  • 邵阳企业网站建设b站推广2023
  • 做seo还要需要做网站吗怎么注册一个自己的网址
  • 外贸商城网站 定制微信小程序怎么制作自己的程序