【Mybatis学习路线】day01Mybatis概述
1.1Mybatis概念
- 什么是mybatis?
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
基本信息:
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 [1]
- 持久化:数据从瞬时状态变为持久状态
- 持久层:完成持久化工作的代码块。–dao层
- Mybatis的作用:Mybatis就是帮助程序猿将数据存入数据库中,和从数据库中取数据。
- Mybatis和传统JDBC的比较:
传统的jdbc操作:有很多重复代码块。比如:数据取出时的封装。数据库建立连接等等。通过框架可以减少重复代码,提高开发效率。 - Mybatis是一个半自动化的ORM框架。O–object,R–relationship,M–mapping.
- Mybatis的功能:
Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
1.2Mybatis的基本使用
1.准备mybatis基本的jar包
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
commons-logging-1.2.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
mybatis-3.2.7.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
数据库连接包:
mysql-connector-java-8.0.19.jar
PS:mybatis所有版本的jar包都在官网上可以找到
官网地址:https://github.com/mybatis/mybatis-3/releases
本博客使用的3.2.7版本。可能有的地区在官网上下载比较慢,容易出现断网。可以私信找我要哦。
也可以自己搭个*,谷歌浏览器的setupVpn插件就很好
2.mybatis基本配置文件
<?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:3306/mybatis?serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="net/xyz/entiy/user.mapper.xml"/>
</mappers>
</configuration>
这个地方的主要功能就是配置数据库的四大参数。之后你才可以连接上数据库。
3.得到SqlSessionFactory,以及通过SqlSessionFactory得到SqlSession
public class MybatisUtil {
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis.config..xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
public static SqlSession getSession() throws IOException {
SqlSessionFactory sqlSessionFactory =getSqlSessionFactory();
SqlSession sqlSession =sqlSessionFactory.openSession();
return sqlSession;
}
}
4.创建实体类
public class User {
private int id;
private String username;
private int userage;
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 int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", userage=" + userage + "]";
}
}
6.编写sql语句的映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.xyz.entiy.UserMapper">
<select id="selectUser" resultType="net.xyz.entiy.User">
select * from user where id = #{id}
</select>
</mapper>
7.由mybatis框架向数据库中查询出一个对象
public class Test {
public static void main(String[] args) {
try {
SqlSession sqlSession=MybatisUtil.getSession();
User user=sqlSession.selectOne("net.xyz.entiy.UserMapper.selectUser", 1);
System.out.println(user.toString());
sqlSession.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本文地址:https://blog.csdn.net/qq_44867340/article/details/107392490