首先要在Maven项目中加入mybatis依赖和数据库依赖
<!--MyBatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<!-- 数据库依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
首先要在resource目录下加入myBatis-config.xml文件(这个文件在官网的快速入门找到)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 这个包下的类全部用默认别名 就是类的名字,不区分大小写-->
<package name="com.sunshine.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb1?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunshine/mappers/EmpMapper.xml"/>
</mappers>
</configuration>
然后在写好获得SqlSession的工具类
package com.sunshine.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SessionUtil {
private static SqlSessionFactory sqlSessionFactory;
// 从 XML 文件中构建 SqlSessionFactory 的实例
public static SqlSessionFactory createSqlSessionFactory() throws IOException {
//让sqlSessionFactory只创建一次.
if (sqlSessionFactory==null){
String resource = "myBatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
else{
return sqlSessionFactory;
}
return sqlSessionFactory;
}
public static SqlSession createSqlSession() throws IOException {
SqlSession sqlSession = createSqlSessionFactory().openSession();
return sqlSession;
}
}
然后先写好你要查的表的实体类
package com.sunshine.entity;
import java.util.Date;
public class EmpEntity {
private int EMPNO;
private String ENAME;
private String JOB;
private int MGR;
private Date HIREdate;
private double SAL;
private double COMM;
private int DEPTNO;
public EmpEntity() {
}
public EmpEntity(int EMPNO, String ENAME, String JOB, int MGR, Date HIREdate, double SAL, double COMM, int DEPTNO) {
this.EMPNO = EMPNO;
this.ENAME = ENAME;
this.JOB = JOB;
this.MGR = MGR;
this.HIREdate = HIREdate;
this.SAL = SAL;
this.COMM = COMM;
this.DEPTNO = DEPTNO;
}
public int getEMPNO() {
return EMPNO;
}
public void setEMPNO(int EMPNO) {
this.EMPNO = EMPNO;
}
public String getENAME() {
return ENAME;
}
public void setENAME(String ENAME) {
this.ENAME = ENAME;
}
public String getJOB() {
return JOB;
}
public void setJOB(String JOB) {
this.JOB = JOB;
}
public int getMGR() {
return MGR;
}
public void setMGR(int MGR) {
this.MGR = MGR;
}
public Date getHIREdate() {
return HIREdate;
}
public void setHIREdate(Date HIREdate) {
this.HIREdate = HIREdate;
}
public double getSAL() {
return SAL;
}
public void setSAL(double SAL) {
this.SAL = SAL;
}
public double getCOMM() {
return COMM;
}
public void setCOMM(double COMM) {
this.COMM = COMM;
}
public int getDEPTNO() {
return DEPTNO;
}
public void setDEPTNO(int DEPTNO) {
this.DEPTNO = DEPTNO;
}
@Override
public String toString() {
return "EmpEntity{" +
"EMPNO=" + EMPNO +
", ENAME='" + ENAME + '\'' +
", JOB='" + JOB + '\'' +
", MGR=" + MGR +
", HIREdate=" + HIREdate +
", SAL=" + SAL +
", COMM=" + COMM +
", DEPTNO=" + DEPTNO +
'}';
}
}
然后写好查询的接口
package com.sunshine.dao;
import com.sunshine.entity.EmpEntity;
import java.util.List;
public interface EmpMapper {
public List<EmpEntity> queryAll();
public EmpEntity queryByEMPNO(int EMPNO);
/**
*mybatis创两风格参数时
* DEPTNO = #{arg0} and JOB = #{arg1}
* 因为它的底层把它封装成了一个map<arg0 = v1,arg1=v2>
* 还有一个param(从1开始)
* DEPTNO = #{param1} and JOB = #{param2}
*也可以混用
* DEPTNO = #{param1} and JOB = #{arg1}
* 因为它的底层封装成一个map(4个Key)
*/
public EmpEntity queryByEMPNOAndJOB(int DEPTNO,String JOB);
public EmpEntity query03 (double sal,int DEPTNO,String JOB);
}
然后再写好接口的实现
package com.sunshine.service;
import com.sunshine.dao.EmpMapper;
import com.sunshine.entity.EmpEntity;
import org.apache.ibatis.session.SqlSession;
import com.sunshine.util.SessionUtil;
import org.apache.ibatis.session.SqlSessionFactory;
import java.io.IOException;
import java.util.List;
public class EmpMapperServiceImpl {
// 因为他无法实例化
public List<EmpEntity> queryAll(){
try {
SqlSession sqlSession = SessionUtil.createSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
List <EmpEntity> empEntities = empMapper.queryAll();
return empEntities;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public EmpEntity queryByEMPNO(int EMPNO){
try {
SqlSession sqlSession = SessionUtil.createSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
EmpEntity empEntity = empMapper.queryByEMPNO(EMPNO);
return empEntity;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public EmpEntity queryByEMPNOAndJOB(int DEPTNO,String JOB){
try {
SqlSession sqlSession = SessionUtil.createSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
EmpEntity empEntity = empMapper.queryByEMPNOAndJOB(DEPTNO,JOB);
return empEntity;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public EmpEntity query03 (double sal,int DEPTNO,String JOB){
SqlSession sqlSession = null;
try {
sqlSession = SessionUtil.createSqlSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
EmpEntity empEntity = empMapper.query03(sal,DEPTNO,JOB);
return empEntity;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
在写一个测试类运行你的查询,并用日志来打印查询的结果
package com.sunshine.test;
import com.sunshine.entity.EmpEntity;
import com.sunshine.service.EmpMapperServiceImpl;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
@Slf4j(topic = "e")
public class MyBatisTest {
public static void main(String[] args) {
// List<EmpEntity> empEntities = new EmpMapperServiceImpl().queryAll();
// log.debug("empEntities--{}",empEntities);
// EmpEntity empEntity = new EmpMapperServiceImpl().queryByEMPNO(7844);
// log.debug("empEntity--{}",empEntity);
EmpEntity empEntity1 = new EmpMapperServiceImpl().queryByEMPNOAndJOB(20,"CLERK");
log.debug("empEntity--{}",empEntity1);
}
}