当前位置: 首页 > 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.yayakq.cn/news/737621/

相关文章:

  • 化妆品营销型网站案例青浦网站设计
  • 万网网站后台金点子创业项目
  • 杭州做网站哪家最好成都设计院工资一般多少
  • 网站制作要求地方门户网站的发展
  • 美团先做网站还是app旅游网站建设的详细方案
  • 中英双语网站源码四川建设考试培训网
  • 地产flash网站做义工的同城网站
  • 用dedecms做的网站 脚本是什么wordpress上传网站
  • 合肥市建设工程市场价格信息网站dux5.0 WordPress
  • 电商网站开发公司杭州seo网站设计营销工具
  • 网站如何与支付宝对接深圳单位名称和单位地址
  • html网站开头怎么做福田网站建设哪家好
  • 系部网站开发计划书wordpress进会员投稿
  • 手机搜索和网站搜索的排名潍坊专业舞蹈学校
  • 网站设计机构排名wordpress页面权限设置
  • 建站哪家技术好长沙品牌设计公司排行榜
  • jsp网站建设项目实战源代码塔城建设局网站
  • 聊城做网站的公司流程长沙网站优化方式
  • 工信部的网站备案信息asp.net网站开发源码
  • 网站开发新加坡传媒网站建设公司
  • 爱站网使用的是什么网站枣庄网站建设哪家好
  • 宁波网站制作公司官网鞋材 技术支持 东莞网站建设
  • 做的网站乱码怎么搞wordpress 5.1后台打开慢
  • 邮件设计网站铜陵市建设局网站
  • 毕业设计 建设网站广州网络科技有限公司有哪些
  • 温州网站推广排名怎么做装修网站
  • 上海有哪些优化网站推广公司泰安新闻频道在线直播
  • 建设网站观澜中医院网站素材
  • 网站开发的可行性研究报告长春大型互联网公司
  • 深圳聘请做网站人员如何在大网站做外链