Java中的持久层框架
1.mybatis:最早叫ibatis 开发效率低,执行性能好
2.hibernate 开发效率高,执行性能低
反射
对象.属性=值
属性.赋值方法(对象,值)
*反射是java进阶的分水岭
*不要乱用反射,反射性能低
mybatis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
Mysql依赖
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
resources--mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--配置链接环境,连接环境可以配置多个,default是默认使用-->
<environments default="development">
<!-- id是为了命名-->
<environment id="development">
<!-- 事务管理模式-->
<transactionManager type="JDBC"/>
<!-- 连接池,type="POOLED"使用mybatis自带的连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/neusoft"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
出现的问题❓
不兼容
用德鲁伊或者是自带的POOLED
mybatis有xml和注解类的两种写法
resource下创建路径用/
创建Mapper层
mybatis的三种用法🐎
1.SqlSession直接执行xml中的sql语句 能用但是不怎么用了 2.接口代理-----约定较多
a.创建一个接口和一个xml,接口名和xml名无强关联,所在的包路径也没有强关联,但是建议统一
b.xml的namespace的值必须是对应接口的全路径
c.接口中声明一个方法来对应xml中的一个标签,方法名必须跟标签的id一致
d.接口里方法的返回值"合理”即可,查询多个就集合,查询到单个就对象,增删改要么数字要么void