excel如何制作月度项目进度表格
1057
2022-05-30
一、简介
以Mybatis3.5.7为例
环境:
jdk8.0
Mysql8.0
maven3.8.4
IDEA
回顾:
JDBC
Mysql
Java基础
Maven
Junit
1.初识Mybatis
MyBatis 是一款优秀的
持久层框架
它支持自定义 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。
2013年11月迁移到Github。所以要找Mybatis得去Github
怎么获得Mybatis?
maven仓库
搜搜jar包的坐标网站https://mvnrepository.com/
Github: https://github.com/mybatis/mybatis-3/releases
Mybatis中文文档:https://mybatis.net.cn/index.html
2.持久化
数据持久化
持久化就是把程序的数据在持久状态和瞬时状态转化的过程
内存:断电后数据就消失了
数据库(jdbc),IO文件持久化
为什么需要持久化
内存断电后数据就丢失了,有一些对象我们不能让他丢掉
内存太贵了
3.持久层
Dao层,Service层,Controller层
完成持久化工作的代码块
层的界限十分明显
每个层的任务很明确,各司其职
关于三层架构,大家可以看这篇博客,讲解得很清楚SSM,三层结构,MVC三者的说明及关系(很全面)
4.为什么需要Mybatis
帮助程序员把数据存入到数据库中
方便
传统的JDBC代码太复杂了,框架可以简化操作,自动化。
不使用Mybatis也可以,更容易上手。
优点:
sql和代码分类,提高可维护性
提供映射标签,支持对象与数据库的orm字段关系映射
ORM是对象关系映射的意思
O ------ object就是 java对象
R -------relational 关系型数据
M -------mappering 映射
提供哦那个对象关系映射标签,支持对象关系组建维护
提供xml标签,支持编写动态sql
二、第一个Mybatis程序
思路:搭建环境–>导入Mybatis–>编写代码–>测试
1.搭建环境
先提供一个数据库和用来操作的表
新建项目
1.File->new Project 新建maven项目
下面这一堆代码是构建maven项目以后,自带的
2.删除src,这样就可以当成父工程了
3.导入maven依赖
第一次加入依赖的时候,项目会爆红,记得重新加载项目,这样就不会爆红了
2.创建一个新模块
父项目的pox.xml就会多出来这样的代码
编写mybatis核心配置文件
把下面的代码拷贝到刚刚新建的xml文件
上面那一个从官网复制过来的,相当于是一个模板,但是里面具体的信息需要我们自己去设置,比如说我们要连接的数据库的用户名,密码等信息需要手动配置
3.编写代码
编写mybatis工具类
//工厂模式 //sqlSessionFactory---->sqlSession public class MybatisUtils { public static SqlSessionFactory sqlSessionFactory; static { try { //读取配置文件 //下面三句话是固定的 //使用Mybatis第一步:获取sqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } /** * 既然有了SqlSessionFactory,顾名思义,我们就可以从中获取SqlSession的实例了 * SqlSession完全包含了面向数据库执行sql命令所需要的所有方法 */ public static SqlSession getSqlSession() { SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } }
实体类(domain,pojo,domain)每一个类都和数据库中的一张表相关联
package com.kuang.pojo; /**实体类 * @author zengyihong * @create 2022--03--28 17:14 */ public class User { private int id; private String username; private String password; public User() { } public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
DAO接口(对数据库表的CRUD操作,对user表的操作就对应一个userDao)
package com.kuang.dao; import com.kuang.pojo.User; import java.util.List; /**这个类用来操作数据库中对象的实体 * @author zengyihong * @create 2022--03--28 17:16 */ //dao等价于mapper public interface UserDao { List
接口实现类由原来的UserDaoImpl转换成为一个Mapper配置文件
可能大家看到上面那些有点懵,那我们就来复习一下 ,具体的大家可以看我博客中JDBC的内容,里面有关于分层的讲解。
4.Junit测试
package com.kuang.dao; import com.kuang.pojo.User; import com.kuang.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.jupiter.api.Test; import java.util.List; /** * @author zengyihong * @create 2022--03--29 9:55 */ public class UserDaoTest { @Test public void test(){ // SqlSession // 第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //方式一:执行SQL getMapper UserDao mapper = sqlSession.getMapper(UserDao.class); List
三、可能遇到的问题
1.配置文件没有注册
2.绑定接口错误
3.方法名错误
4.返回类型错误
5.maven导出资源错误
在pox.xml中,加入下面代码即可
MyBatis 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。