什么是MyBatis?
MyBatis是一款优秀的持久层框架,用于简化JDBC开发
持久层就是负责将数据到保存到数据库的那一层代码
查询user表中所有数据
1.创建user表,添加数据
2.创建模块,导入坐标
3.编写MyBatis核心配置文件-->替换连接信息解决硬编码问题
4.编写SQL映射文件-->统一管理sql语句,解决硬编码问题
5.编码
1.定义POJO类
2. 加载核心配置文件,获取 SqlSessionFactory对象
3.获取 SqISession对象,执行SQL语句
4.释放资源 -
public static void main(String[] args) throws IOException {
2加载核心配置文件,获取 SqlSes
/ /1.加载mybatis的核心配置文件,获取SqlSessionFactory
3.获取 SqlSession对象,执行SQL
string resource = "mybatis-config.xml" ;
4.释放资源
Inputstream inputstream = Resources.getResourceAsStream(resource);
sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder().build(inputStream);
//2.获取SqlSession对象,用它来执行sql
sqlSession sqlsession = sqlsessionFactory.openSession();
//3.执行sql
List<User> users = sqlsession.selectList( statement: "test.selectAll");
/ /4.释放资源
sqlsession.close();
使用Mapper代理方式完成入门室例
1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
2.设置SQL映射文件的namespace属性为Mapper接口全限定名
3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值
类型一致
4.编码
1.通过SqISession的 getMapper方法获取Mapper接口的代理对象
2.调用对应方法完成sql的执行
查询所有
1.编写接口方法: Mapper接口
参数:无
结果: List<Brand>
2.编写SQL语句:SQL映射文件:3.执行方法,测试
实体类属性名和数据库表列名不一致,不能自动封装数据
1)起别名:在sQL语句中,对不一样的列名起别名,别名和实体类属性名一样
*可以定义<sql>片段,提升复用性
2) resultMap:定义<resultMap>完成不一致的属性名和列名的映射I