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><!-- Mybatis驱动包--><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><!--MySQL8驱动包--><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" ?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 通过这个配置文件完成mybatis与数据库的连接 --><configuration><!-- 引入 database.properties 文件--><propertiesresource="database.properties"/><!-- 配置mybatis的log实现为LOG4J --><settings><settingname="logImpl"value="LOG4J"/></settings><environmentsdefault="development"><environmentid="development"><!--配置事务管理,采用JDBC的事务管理 --><transactionManagertype="JDBC"></transactionManager><!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --><dataSourcetype="POOLED"><propertyname="driver"value="${driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${user}"/><propertyname="password"value="${password}"/></dataSource></environment></environments><!-- 将mapper文件加入到配置文件中 --><mappers><!-- 这里的文件根据自己的路径以及文件名来配置即可--><mapperresource="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=?//填写自己的数据库用户名,一般为root
password=?//数据库密码
二、创建pojo类
首先在dao层可以定义一个接口:
publicinterfaceDeptMapper{/**
* 查询所有部门
*/publicListselectDeptList();}
创建一个实体类,实现ORM
publicclassDept{privateInteger deptNo;//部门编号privateString deptName;//部门名称privateString password;//密码privateString address;//地址@OverridepublicStringtoString(){return"Dept{"+"deptNo="+ deptNo +", deptName='"+ deptName +'\''+", password='"+ password +'\''+", address='"+ address +'\''+'}';}}
这个类和数据库的部门表是相互对应的:
三、编写mapper映射文件(写SQL)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="db.dao.DeptMapper"><selectid="selectDeptList"resultType="db.pojo.Dept">
SELECT * FROM dept
</select></mapper>
我们可以把Mybais的常用语句封装在一个工具类里面,这样就可以给全局使用:
publicclassMybatisUtils{privatestaticSqlSessionFactory factory;static{InputStream is;try{//通过IO流获取到mybatis-config.xml中的配置信息
is=Resources.getResourceAsStream("mybatis-config.xml");
factory=newSqlSessionFactoryBuilder().build(is);}catch(IOException e){
e.printStackTrace();}}/**
* 获取到sqlSession
* @return
*/publicstaticSqlSessioncreateSqlSession(){return factory.openSession();}/**
* 关闭sqlSession
* @param sqlSession
*/publicstaticvoidcloseSqlsession(SqlSession sqlSession){if(sqlSession!=null){
sqlSession.close();}}}
最后是测试类:
@Testpublicvoidtest02(){//获取到sqlSessionFactory,再获取到sqlsessionSqlSession 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都已经帮你做了。
好啦,大家快去试试吧,
版权归原作者 热爱飞行的小应学长 所有, 如有侵权,请联系我们删除。