Mybatis实现向数据库的实现细节详解-----Mybatis框架
XML是一个配置文件
mybatis-config.xml是核心配置文件,主要配置数据库的信息(仅一个)
xxxMapper.xml是sql语句的配置文件,一个数据表一个
Resource出现时,多数是从类的根路径下开始加载的
自己传递流给jvm就会导致可移植性变差了,因为在Windows系统中,盘符区分可以设置,但是在mac和linux等操作系统中,没有盘符,就得改代码
程序不够健壮,违背了OCP原则
所以我们用Resource的getResourceAsStream方式加载资源
所以我们验证了,Mybatis的核心配置文件不一定是mybatis-config.xml,也可以是其他名字
mybatis核心配置文件存放的路径,也不一定是在类的根路径下,可以是其他位置
但是为了项目的移植性和健壮性,我们最好还是要放在类路径下
ClassLoader.getSystemClassLoader.getResourceAsStream()方法
类加载器获取系统类加载器然后在类的根路径下获取了这个文件
Resource的getResourceAsStream方式底层的源代码实际就是对上面的方法的封装为一个静态工具类
CarMapper.xml的文件名字和位置不是固定的
他也是通过xml的配置Mapper信息中配置的路径,从根路径中加载
XML是一个配置文件
mybatis-config.xml是核心配置文件,主要配置数据库的信息(仅一个)
xxxMapper.xml是sql语句的配置文件,一个数据表一个
Resource出现时,多数是从类的根路径下开始加载的
自己传递流给jvm就会导致可移植性变差了,因为在Windows系统中,盘符区分可以设置,但是在mac和linux等操作系统中,没有盘符,就得改代码
程序不够健壮,违背了OCP原则
所以我们用Resource的getResourceAsStream方式加载资源
所以我们验证了,Mybatis的核心配置文件不一定是mybatis-config.xml,也可以是其他名字
mybatis核心配置文件存放的路径,也不一定是在类的根路径下,可以是其他位置
但是为了项目的移植性和健壮性,我们最好还是要放在类路径下
ClassLoader.getSystemClassLoader.getResourceAsStream()方法
类加载器获取系统类加载器然后在类的根路径下获取了这个文件
Resource的getResourceAsStream方式底层的源代码实际就是对上面的方法的封装为一个静态工具类
CarMapper.xml的文件名字和位置不是固定的
他也是通过xml的配置Mapper信息中配置的路径,从根路径中加载
CREATE DATABASE powernode;
USE powernode;
CREATE TABLE t_car(id BIGINT PRIMARY KEY AUTO_INCREMENT,car_num VARCHAR(255),
brand VARCHAR(255),guide_price DECIMAL,produce_time CHAR(10),car_type CHAR(10))
INSERT INTO t_car(id,car_num,brand,guide_price,produce_time,car_type)
VALUES(NULL,'1001','宝马',30.0,'2000-10-11','燃油车')
INSERT INTO t_car(id,car_num,brand,guide_price,produce_time,car_type)
VALUES(NULL,'1002','奔驰',30.0,'2000-10-11','新能源')
SELECT * FROM t_car;
CREATE DATABASE powernode;
USE powernode;
CREATE TABLE t_car(id BIGINT PRIMARY KEY AUTO_INCREMENT,car_num VARCHAR(255),
brand VARCHAR(255),guide_price DECIMAL,produce_time CHAR(10),car_type CHAR(10))
INSERT INTO t_car(id,car_num,brand,guide_price,produce_time,car_type)
VALUES(NULL,’1001’,’宝马’,30.0,’2000-10-11’,’燃油车’)
INSERT INTO t_car(id,car_num,brand,guide_price,produce_time,car_type)
VALUES(NULL,’1002’,’奔驰’,30.0,’2000-10-11’,’新能源’)
SELECT * FROM t_car;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:13306/powernode" />
<property name="username" value="root" />
<property name="password" value="abc123" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 指定xml文件的路径,自动从根路径下找资源-->
<mapper resource="CarMapper.xml"></mapper>
<!-- url属性,是从绝对路径下加载资源的,语法格式是file:///加绝对路径-->
<!-- <mapper resource="CarMapper.xml" url="file:///d:/CarMapper.xml"></mapper>-->
</mappers>
</configuration>
<?xml version=”1.0” encoding=”UTF-8” ?>
<!DOCTYPE configuration
PUBLIC “-//mybatis.org//DTD Config 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-config.dtd">
还没有评论,来说两句吧...