个人+网站可以做导航吗,wordpress相册移植typecho,wordpress国主题公园,首都建设网学习视频#xff1a;1001 框架概述_哔哩哔哩_bilibili 目录
框架概述
1.1为什么要学 1.2框架的优点
1.3 当前主流框架 Spring框架 Spring MVC框架 MyBatis框架
编辑 Spring Boot框架 Spring Cloud框架
1.4 传统JDBC的劣势
MyBatis
2.1 MyBatis概述 ORM框架工作原… 学习视频1001 框架概述_哔哩哔哩_bilibili 目录
框架概述
1.1为什么要学 1.2框架的优点
1.3 当前主流框架 Spring框架 Spring MVC框架 MyBatis框架
编辑 Spring Boot框架 Spring Cloud框架
1.4 传统JDBC的劣势
MyBatis
2.1 MyBatis概述 ORM框架工作原理 解决JDBC编程劣势
2.2 MyBatis环境搭建
pom.xml
db.properties
mybatis-config.xml 2.3 MyBatis入门程序
创建User实体类
UserMapper.xml 实现sql语句和java对象之间的映射
测试类
2.4 MyBatis的工作原理
8个步骤 框架概述
1.1为什么要学 1.2框架的优点 1.3 当前主流框架 Spring框架 Spring MVC框架 MyBatis框架 Spring Boot框架 Spring Cloud框架 1.4 传统JDBC的劣势 MyBatis
2.1 MyBatis概述 ORM框架工作原理 解决JDBC编程劣势 2.2 MyBatis环境搭建 !-- 只展示了其中一个依赖--
dependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.11/version/dependency
...
/dependenciescreate database mybatis;mysql.drivercom.mysql.cj.jdbc.Driver
mysql.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTC
characterEncodingutf8useUnicodetrueuseSSLfalse
mysql.usernameroot
mysql.passwordrootconfigurationproperties resourcedb.properties/
environments defaultdevelopment
environment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver value${mysql.driver} /property nameurl value${mysql.url} /property nameusername value${mysql.username} /property namepassword value${mysql.password} //dataSource/environment/environments
/configurationpom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdmybatistest/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependencies!--mybatis--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.6/version/dependency!--单元测试--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!--mysql驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/versionscoperuntime/scope/dependency/dependencies/project
db.properties
mysql.drivercom.mysql.cj.jdbc.Driver
mysql.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTCcharacterEncodingutf8useUnicodetrueuseSSLfalse
mysql.usernameroot
mysql.passwordrootmybatis-config.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
!--配置mybatis环境--
configuration!--引入外部db.properties--properties resourcedb.properties/properties!--配置连接使用的相关参数default为默认使用的环境development 测试环境product 生产环境--environments defaultdevelopment!--测试环境--environment iddevelopment!--事务管理类型指定事务管理的方式 JDBC--transactionManager typeJDBC/!--数据库连接相关配置动态获取config.properties文件里的内容--!--数据源类型POOLED 表示支持JDBC数据源连接池UNPOOLED 表示不支持数据源连接池JNDI 表示支持外部数据源连接池--dataSource typePOOLED!--此处使用的是MySQL数据库使用Oracle数据库时需要修改仔细检查各项参数是否正确里面配置了时区、编码方式、SSL用以防止中文查询乱码导致查询结果为null及SSL警告等问题--property namedriver value${mysql.driver}/property nameurlvalue${mysql.url}/property nameusername value${mysql.username}/property namepassword value${mysql.password}//dataSource/environment/environmentsmappers!--配置xxxMapper.xml文件的位置--mapper resourcemapper/UserMapper.xml//mappers/configuration 2.3 MyBatis入门程序 use mybatis;
create table users(uid int primary key auto_increment,uname varchar(20) not null,uage int not null
);
insert into users(uid,uname,uage) values(null,张三,20),(null,李四,18);package com.itheima.pojo;
public class User {private int uid; // 用户idprivate String uname; // 用户姓名private int uage; // 用户年龄// 省略getter/setter方法…
}mapper namespacecom.itheima.pojo.User!--id 接口中的方法名parameterType传入的参数类型resultType 返回实体类对象使用包.类名--
select idfindById parameterTypeint resultTypecom.itheima.pojo.User select * from users where uid #{id}
/select
/mapper!– mapping文件路径配置--
mappersmapper resourcemapper/UserMapper.xml/
/mappers如果一个项目有多个映射文件则mybatis-config.xml核心配置文件中需要在mappers元素下配置多个mapper元素指定映射文件的路径。 public class UserTest { public void userFindByIdTest() {String resources mybatis-config.xml; Reader readernull;try { reader Resources.getResourceAsReader(resources);} catch (IOException e) { e.printStackTrace();}SqlSessionFactory sqlMappernew SqlSessionFactoryBuilder().build(reader);SqlSession sessionsqlMapper.openSession();User usersession.selectOne(findById,1);System.out.println(user.getUname());session.close();}} 创建User实体类
package com.it.pojo;public class User {private int uid;private String uname;private int uage;public int getUid() {return uid;}public void setUid(int uid) {this.uid uid;}public String getUname() {return uname;}public void setUname(String uname) {this.uname uname;}public int getUage() {return uage;}public void setUage(int uage) {this.uage uage;}Overridepublic String toString() {return User{ uid uid , uname uname \ , uage uage };}}UserMapper.xml 实现sql语句和java对象之间的映射
?xml version1.0 encodingUTF-8?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
!--mapper为映射的根节点用来管理DAO接口namespace指定DAO接口的完整类名表示mapper配置文件管理哪个DAO接口(包.接口名)mybatis会依据这个接口动态创建一个实现类去实现这个接口而这个实现类是一个Mapper对象--
mapper namespacecom.it.pojo.User!--id 接口中的方法名parameterType 接口中传入方法的参数类型resultType 返回实体类对象包.类名 处理结果集 自动封装注意:sql语句后不要出现;号查询select标签增加insert标签修改update标签删除delete标签--select idfindByIdparameterTypeintresultTypecom.it.pojo.Userselect * from users where uid#{id}/select/mapper测试类
package com.it.test;import com.it.pojo.User;
import jdk.management.resource.ResourceRequest;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.InputStream;public class UserTest01 {Testpublic void findById() throws Exception{//1.获取核心配置文件InputStream is Resources.getResourceAsStream(mybatis-config.xml);//2.创建sqlSessionFactory工厂对象SqlSessionFactory sqlSessionFactorynew SqlSessionFactoryBuilder().build(is);//3.创建sqlSession对象SqlSession sqlSessionsqlSessionFactory.openSession();//4.执行sql语句 sql语句唯一标识:namespace.statementIdUser usersqlSession.selectOne(com.it.pojo.User.findById,1);System.out.println(user);//5.释放资源sqlSession.close();}}2.4 MyBatis的工作原理 8个步骤 1MyBatis读取核心配置文件mybatis-config.xmlmybatis-config.xml核心配置文件主要配置了MyBatis的运行环境等信息。 2加载映射文件Mapper.xmlMapper.xml文件即SQL映射文件该文件配置了操作数据库的SQL语句需要在mybatis-config.xml中加载才能执行。 3构造会话工厂通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory用于创建SqlSession。 4创建会话对象由会话工厂SqlSessionFactory创建SqlSession对象该对象中包含了执行SQL语句的所有方法。 5创建执行器会话对象本身不能直接操作数据库MyBatis底层定义了一个Executor接口用于操作数据库执行器会根据SqlSession传递的参数动态的生成需要执行的SQL语句同时负责查询缓存地维护。 6封装SQL信息SqlSession内部通过执行器Executor操作数据库执行器将待处理的SQL信息封装到MappedStatement对象中。 7操作数据库根据动态生成的SQL操作数据库。 8输出结果映射执行SQL语句之后通过MappedStatement对象将输出结果映射至Java对象中。