java项目配置mybatis

准备工作(建表):

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的配置已结完成,这点东西,写起来还挺费劲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值