java项目配置mybatis

tech2026-02-27  2

准备工作(建表):

CREATE TABLE `test` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of test -- ---------------------------- INSERT INTO `test` VALUES ('1', '11231'); INSERT INTO `test` VALUES ('2', '12312'); INSERT INTO `test` VALUES ('3', '1312'); INSERT INTO `test` VALUES ('4', '564');

1.项目目录结构

2.导入jar包,需要两个:一个数据库连接jar包、一个mybatis相关jar包

2.1 jar包下载地址:https://mvnrepository.com/search?q=mybatis

2.2 jar包下载步骤

同样步骤下载好另外一个jar包。

2.3  将jar包导入项目

(1)先创建一个lib包;

(2)将下载好的jar包放到lib包下

(3)将jar添加到依赖路径中去

3. mybatis配置文件mybatis-config.xml

3.1 配置文件放的位置(两个位置都可以用,本文使用的“位置1”

(1)放在“位置1”是java的相对路径,用下面的代码可以读取(这些在后面都有用到)

Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

(2)放在“位置2”是绝对路径,用下面代码读取

  绝对路径获取方法,看下图

Reader reader = Resources.getUrlAsReader("file:///" +"E:\\ideaWorkSpace\\geohash\\config\\mybatis-config1.xml");//读取绝对路径下的配置文件

数据库连接、有户名和密码改成自己的,还有<mapper resource="resources/mapper/TJunctionMapper.xml"/> 中的路径放你自己创建的写sql语句的marpper.xml文件的相对路径

<?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> <settings> <!-- changes from the defaults for testing --> <setting name="cacheEnabled" value="false"/> <setting name="useGeneratedKeys" value="true"/> <setting name="defaultExecutorType" value="REUSE"/> </settings> <typeAliases> <typeAlias alias="TJunction" type="com.cetc.entity.TJunction"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/geo_hash_data?serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8&amp;allowMultiQueries=true"/> <property name="username" value="root"/> <property name="password" value="cetc28"/> </dataSource> </environment> </environments> <mappers> <mapper resource="resources/mapper/TJunctionMapper.xml"/> </mappers> </configuration>

4. mapper.xml和对应得接口mapper.class创建

对照目录创建好对应文件。

4.1 TJunctionMapper.class内容如下

import com.cetc.entity.TJunction; import java.util.List; import java.util.Map; public interface TJunctionMapper { Long count(); }

4.2 TJunctionMapper.xml内容如下(创建方法已经教过了),注意:namespace=" "中放你自己的TJunctionMapper.class相对路径

注意(怕你忘记前面说的):将配置文件中的<mapper resource="resources/mapper/TJunctionMapper.xml"/> 中的路径放你自己创建的写sql语句的marpper.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.cetc.mapper.TJunctionMapper"> <select id="count" resultType="long"> select count(1) from test </select> </mapper>

5. 连接数据库

5.1 创建DataManagerUtile类

import com.cetc.mapper.TJunctionMapper; 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.Reader; import java.util.logging.Logger; public class DataManagerUtile { private SqlSession sqlSession; private TJunctionMapper tJunctionMapper; private Logger logger = Logger.getLogger(""); public DataManagerUtile() { initialConnection(); } public TJunctionMapper gettJunctionMapper() { return tJunctionMapper; } private void initialConnection() { try { // Reader reader = Resources.getResourceAsReader("mybatis-config.xml");//读取相对路径下 的配置文件(就是位置1) Reader reader = Resources.getUrlAsReader("file:///" +"E:\\ideaWorkSpace\\geohash\\config\\mybatis-config1.xml");//读取绝对路径下的配置文件(位置2) // Reader reader = Resources.getUrlAsReader("file:"+ Class.class.getResource("/").getPath().replace('/', '\\')+"mybatis-config.xml");//读取项目相同目录下的配置文件 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader); sqlSession = ssf.openSession(true); tJunctionMapper = sqlSession.getMapper(TJunctionMapper.class); logger.info("数据库已连接!"); } catch (Exception e) { e.printStackTrace(); } } public void destroyConnection() { sqlSession.close(); logger.info("数据库关闭!"); } }

6. 使用数据库

创建一个service类来使用

import com.cetc.entity.TJunction; import com.cetc.utils.DataManagerUtile; import com.cetc.mapper.TJunctionMapper; import java.util.List; import java.util.logging.Logger; public class Service { private Logger logger = Logger.getLogger(""); private DataManagerUtile dataManagerUtile = new DataManagerUtile(); private TJunctionMapper tJunctionMapper = dataManagerUtile.gettJunctionMapper(); public Long count(){ return tJunctionMapper.count(); } public List<TJunction> getList(Long id) { try { return tJunctionMapper.selectList(id); } catch (Exception e) { dataManagerUtile.destroyConnection(); e.printStackTrace(); throw e; } } public void update(List<TJunction> list) { try { int result = tJunctionMapper.update(list); if (result != 0) logger.info("更新[" + list.size() + "]条数据成功!"); else logger.info("更新失败!"); dataManagerUtile.destroyConnection(); } catch (Exception e) { dataManagerUtile.destroyConnection(); e.printStackTrace(); throw e; } } }

7. 测试

创建main方法来测试

import com.cetc.manager.Service; public class main { public static void main(String[] args) { Service service = new Service(); System.out.println(service.count()); } }

至此,mybatis的配置已结完成,这点东西,写起来还挺费劲。

最新回复(0)