Mybatis的入门
哈喽大家好,好久不见!!!!
在上一篇文章中的JBDC是Java连接数据库的操作,但是JBDC在实际开发中存在繁琐、代码的复用性不高,然而Mybatis将解决了JBDC的繁琐问题,以后只需要写SQL即可,相当于半自动模式。
而Mybatis的代码是在GitHub上托管的 Mybatis官网:https://mybatis.org/mybatis-3/zh/index.html
首先我们得了解什么是ORM?
Object Relation Mapping: 对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。
简单的说:一张表对于一个类,字段=类属性
一、创建项目,引入Mybatis
这里我们可以使用Maven来引用Mybatis:
首先创建一个Maven项目: 在创建好Maven项目后,会得到一个pom.xml配置文件
这里把pom.xml的配置信息放在这里,可以直接复制到 <dependencies> </dependencies> 内即可,然后刷新即可加载成功
或者大家可以自行查看需要依赖的配置信息:https://mvnrepository.com/
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
如何查看是否添加成功?
在mybatis-config.xml配置文件内容如下(有些需要根据自己的情况去更改):
<?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>
<properties resource="database.properties"/>
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/DeptMapper.xml"/>
</mappers>
</configuration>
接着还是和JBDC一样创建一个database.properties 文件,在里面写入数据库的信息:
driver= com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
user=?
password=?
二、创建pojo类
首先在dao层可以定义一个接口:
public interface DeptMapper {
public List selectDeptList();
}
创建一个实体类,实现ORM
public class Dept {
private Integer deptNo;
private String deptName;
private String password;
private String address;
@Override
public String toString() {
return "Dept{" +
"deptNo=" + deptNo +
", deptName='" + deptName + '\'' +
", password='" + password + '\'' +
", address='" + address + '\'' +
'}';
}
}
这个类和数据库的部门表是相互对应的:
三、编写mapper映射文件(写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="db.dao.DeptMapper">
<select id="selectDeptList" resultType="db.pojo.Dept">
SELECT * FROM dept
</select>
</mapper>
我们可以把Mybais的常用语句封装在一个工具类里面,这样就可以给全局使用:
public class MybatisUtils {
private static SqlSessionFactory factory;
static {
InputStream is;
try {
is= Resources.getResourceAsStream("mybatis-config.xml");
factory= new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession createSqlSession(){
return factory.openSession();
}
public static void closeSqlsession(SqlSession sqlSession){
if(sqlSession!=null){
sqlSession.close();
}
}
}
最后是测试类:
@Test
public void test02(){
SqlSession sqlSession=null;
try {
sqlSession = MybatisUtils.createSqlSession();
DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);
List<Dept> deptList = deptMapper.selectDeptList();
for (Dept dept : deptList) {
System.out.println(dept.toString());
}
} catch (Exception e) {
sqlSession.rollback();
e.printStackTrace();
}finally{
MybatisUtils.closeSqlsession(sqlSession);
}
}
运行结果: 我们可以看到数据库里面的数据被取到然后打印了出来,这就是通过Mybatis实现的
虽然在第一次创建、配置、使用Mybatis的时候可能比较麻烦,步骤多,但是当你在一个项目内配置好了后,在后面使用过程中只要写SQL即可,其他连接的问题Mybatis都已经帮你做了。
好啦,大家快去试试吧,
|