持久层框架—Mybatis
MyBatis 是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。、
-
建立一个普通的maven工程
-
在pom.xml中导入一些依赖,如mybatis依赖,MySQL数据库依赖,junit单元测试。maven仓库可获取
-
删除maven项目中的src文件夹,再创建一个普通的maven模块(未选择maven的样式)
-
创建数据库,建表
-
通过idea可将数据库进行连接。
注意:会出项数据库请求超时错误(Error:idea连接mysql报错Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ property)
设置一下数据库:show variables like ‘%time_zone%’;
set global time_zone=’+8:00’; -
XML 配置文件中包含了对 MyBatis 系统的核心设置,所以我们要配置mybatis的核心配置文件,在resources目录下建立一个mybatis-config.xml配置文件。导入配置
<?xml version="1.0" encoding="UTF-8" ?>
**driver**:注册驱动 com.mysql.jdbc.Driver **url**: jdbc:mysql://localhost:3306/mybatiss? useSSL = false &characterEncoding =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="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
**username: **root
**password: ***************
- 在src–>main–>java中建立三个package
com.zcm.dao
com.zcm.pojo
com.zcm.utils
1.在pojo包下建立实体类User,写好代码
2.在utils报下创建工具类MybatisUtils
String resource = “org/mybatis/example/mybatis-config.xml”;
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
通过官方给的文档,创建获取sqlsessionfactory对象
写一个静态方法来获取SqlSession (SqlSession 与Jdbc中prepareStament相似,SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法)。
3.在dao包下创建一个UserDao接口,并提供一个 getUserList方法,再创建一个UserMapper.xml映射文件。
namespace:通过包名来找到UserDao接口
**id:**调用的方法
**resultType:**返回的类型,也用包路径来表示 - Junit 单元测试:
在test 下建立com.zcm.dao包,建立UserTest测试类
用MybatisUtils的getSqlsession方法来获得一个sqlsession对象。sqlsession对象有所有的sql方法,调getMapper加载UserDao字节码文件,得到UserDao一个对象,再调用UserDao中定义的getUserList方法。
遍历,得到sql数据库表中的所有数据。
bug:
**## java.io.IOException: Could not find resource org/mybatis/example/mybatis-config.xml**
1.爆出 ioException异常:说找不到 org/mybatis/example/mybatis-config.xml
2.解决方法;资源的路径配置不正确
**## 初始化错误:**
导入配置文件:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
9. END