Mybatis的基本使用
1.新建一个maven工程
选择Maven项目–> 勾选Create from archetype–>选择webapp
2.配置好项目名称和GroupId
3.选择安装好的maven路径
点击finish即可完成项目创建
4.目录配置
新建java工程文件和resource资源文件
- 添加Java文件夹为Java源代码文件夹
- 将resource文件夹标记为资源目录
- 或者可以在设置中配置
- 直接点击即可修改
4.1.目录基本结构
5.pom文件配置
导入mybatis和mysql驱动依赖到maven仓库中
6.代码实现
在bean包下新建数据库表的实体类
package com.qingruan.bean;
public class Dept {
private Integer depno;
private String depName;
private String deptLoc;
public Dept(){}
public Dept(Integer depno, String depName, String deptLoc) {
this.depno = depno;
this.depName = depName;
this.deptLoc = deptLoc;
}
public Integer getDno() {
return depno;
}
@Override
public String toString() {
return "Dept{" +
"depno=" + depno +
", depName='" + depName + '\'' +
", deptLoc='" + deptLoc + '\'' +
'}';
}
public void setDepno(Integer depno) {
this.depno = depno;
}
public String getDepName() {
return depName;
}
public void setDepName(String depName) {
this.depName = depName;
}
public String getDeptLoc() {
return deptLoc;
}
public void setDeptLoc(String deptLoc) {
this.deptLoc = deptLoc;
}
}
在dao包下新建Dao接口
package com.qingruan.dao;
import com.qingruan.bean.Dept;
import java.util.List;
public interface IDeptDao {
/**
* 查询所有部门信息
* @return 返回所有部门信息
*/
List<Dept> findAllDept();
}
新建接口类的xml文件(注意目录结构保持一致!)
<?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="com.qingruan.dao.IDeptDao">
<select id="findAllDept" resultType="com.qingruan.bean.Dept">
select * from dept
</select>
</mapper>
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="mysql">
<environment id="mysql">
<!--事务管理类型主要有jdbc和managed,前者依赖于数据源获得的连接,后者依赖于容器 -->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 如果数据库设置为UTF-8,则URL参数连接需要添加?useUnicode=true&characterEncoding=UTF-8,如下 -->
<property name="url"
value="jdbc:mysql://localhost:3306/java_test?useUnicode=true&characterEncoding=UTF-8"/>
<--数据库用户名-->
<property name="username" value="root"/>
<--数据库密码-->
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 告知mybatis映射配置的位置-->
<mappers>
<mapper resource="com/qingruan/dao/IdeptDao.xml"></mapper>
</mappers>
</configuration>
在test包下新建测试类
package com.qingruan.test;
import com.qingruan.bean.Dept;
import com.qingruan.dao.IDeptDao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.apache.ibatis.io.Resources;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
@Test
public void testFindAllDept() throws Exception{
//读取mybatis主配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建sqlSessionFactory的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//通过构建者对象创建工厂对象
SqlSessionFactory sessionFactory = builder.build(is);
//获得session对象
SqlSession session = sessionFactory.openSession();
//使用session创建dao接口的代理对象
IDeptDao dao = session.getMapper(IDeptDao.class);
//使用dao代理对象来执行查询所有的方法
List<Dept> depts = dao.findAllDept();
for (Dept dept : depts) {
System.out.println(dept.toString());
}
//释放资源
session.close();
is.close();
}
}