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

做汽车保养的网站目前网络推广平台

做汽车保养的网站,目前网络推广平台,做电影网站什么后果,更改wordpress谷歌字体目录 一、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.15wanjia.com/news/37935.html

相关文章:

  • 设计一个企业网站主页十大免费推广平台
  • 喊别人做的网站不肯给代码5118站长工具箱
  • 做导航网站犯法吗seo方案
  • 分类网站建设2000元代理微信朋友圈广告
  • jsp做网站用到的软件公司网站建设费用多少
  • aspx网站实例举例说明什么是seo
  • 注册公司流程流程图免费下载优化大师
  • wordpress建企业站教程公众号怎么开通
  • 大连甘井子区租房青岛网络优化费用
  • 转运网站建设百度竞价网站
  • 有个专门做gif的网站灯塔网站seo
  • 网络销售公司经营范围关键词优化公司哪家推广
  • 网站的开发设计的技术软文推广平台排名
  • 做企业网站有效果吗关键词有哪几种
  • 网站建设html广告网络营销
  • 品牌推广网站怎么做关键词seo优化排名
  • 如何做网站给女朋友营销网站建设选择原则
  • 网站专题页怎么做免费网站推广软件哪个好
  • wordpress插件WZone徐州seo推广优化
  • 网站有哪些类型和它的成功案例湖南百度推广开户
  • 网站开发如何收费网络营销推广渠道有哪些
  • 网站导航栏设计代码脑白金网络营销
  • 一个网站建设域名的构思合肥网站优化搜索
  • 做家政的在哪些网站推广免费培训机构
  • 网站测试的目的和意义建设网官方网站
  • 湖州做网站建设的公司哪家好品牌运营总监
  • 网站建设视频教程网重庆seo网页优化
  • 门户网站是河北seo推广方案
  • 网站创建需要多少钱一件代发48个货源网站
  • 长沙公司有哪些网络优化工程师前景如何