一 创建工程
1.1 依赖项的配置
使用idea创建一个空的Maven工程,可以按照如下示例创建
/pom.xml
在 <dependencies>
节点下中添加如下依赖项,然后更新Maven依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 8.0.28</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis</artifactId > <version > 3.5.6</version > </dependency > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 4.13.1</version > </dependency > <dependency > <groupId > org.projectlombok</groupId > <artifactId > lombok</artifactId > <version > 1.18.32</version > <scope > provided</scope > </dependency >
1.2 测试数据库
本例使用MySQL80作为数据库,请在你的数据库使用如下SQL语句创建数据库和数据表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 create database d_mybatislearn; use d_mybatislearn; create table t_users( uid int primary key auto_increment, uname varchar(20) not null, uage int not null, usex int not null ); insert into t_users (uid,uname,uage,usex) values (10001,"张三",19,1), (10002,"李四",25,1), (10003,"王美",21,0), (10004,"张梅",19,0);
1.2 配置文件
Mybatis核心配置文件
src/main/resources/mybatis-config.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <configuration > <properties resource ="db.dev.properties" /> <environments default ="dev" > <environment id ="dev" > <transactionManager type ="JDBC" /> <dataSource type ="POOLED" > <property name ="driver" value ="${mysql.driver}" /> <property name ="url" value ="${mysql.url}" /> <property name ="username" value ="${mysql.username}" /> <property name ="password" value ="${mysql.password}" /> </dataSource > </environment > </environments > </configuration >
数据源配置文件
src/main/resources/db.properies
1 2 3 4 5 6 7 8 mysql.driver =com.mysql.cj.jdbc.Driver mysql.url =jdbc:mysql://localhost:3306/d_mybiteslearnserverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false mysql.username =root mysql.password =root
1.3 相关代码
DAO类
src/main/java/site/icefox/javaeelearn/Dao/UsersDao.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 package site.icefox.javaeelearn.Dao;import org.apache.ibatis.session.SqlSession;import site.icefox.javaeelearn.Entity.UsersEntity;import site.icefox.javaeelearn.Mapper.UsersMapper;import site.icefox.javaeelearn.Util.DBConn;import java.util.List;import java.util.logging.Logger;public class UsersDao { static Logger logger = Logger.getLogger(UsersDao.class.getName()); public static UsersEntity getUsersByUid (int uid) { UsersEntity result = null ; try (SqlSession sqlSession = DBConn.getSqlSession()) { UsersMapper usersmapper = sqlSession.getMapper(UsersMapper.class); result = usersmapper.getUserByUid(uid); } catch (Exception e) { logger.severe(e.getMessage()); } return result; } public static List<UsersEntity> getAllUsers () { List<UsersEntity> result = null ; try (SqlSession sqlSession = DBConn.getSqlSession()) { UsersMapper usersmapper = sqlSession.getMapper(UsersMapper.class); result = usersmapper.getUsers(); } catch (Exception e) { logger.severe(e.getMessage()); } return result; } }
实体类
src/main/java/site/icefox/javaeelearn/Entity/UsersEntity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 package site.icefox.javaeelearn.Entity;import lombok.Data;@Data public class UsersEntity { private Integer uid; private String uname; private Integer uage; private Integer usex; }
Mapper接口
src/main/java/site/icefox/javaeelearn/Mapper/UsersMapper.java
1 2 3 4 5 6 7 8 9 10 11 package site.icefox.javaeelearn.Mapper;import site.icefox.javaeelearn.Entity.UsersEntity;import java.util.List;public interface UsersMapper { UsersEntity getUserByUid (int uid) ; List<UsersEntity> getUsers () ; }
数据连接池工具类
src/main/java/site/icefox/javaeelearn/Util/DBConn.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package site.icefox.javaeelearn.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 DBConn { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml" ; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder ().build(inputStream); } catch (IOException e) { System.out.println(e.getMessage()); } } public static SqlSession getSqlSession () { return sqlSessionFactory.openSession(); } }
二 测试
测试类
src/test/java/FirstProjectTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import org.apache.ibatis.session.SqlSession;import org.junit.Test;import site.icefox.javaeelearn.Dao.UsersDao;import site.icefox.javaeelearn.Entity.UsersEntity;import site.icefox.javaeelearn.Mapper.UsersMapper;import site.icefox.javaeelearn.Util.DBConn;public class FirstProjectTest { @Test public void queryOneUserByUidTest () { System.out.println(UsersDao.getUsersByUid(10001 )); } @Test public void queryUserListTest () { System.out.println(UsersDao.getAllUsers()); } }
测试结果
理应如下
三 结语
此工程仅用来展示Mybites的工作流程,详细内容稍后介绍。