Java-maven学习笔记备忘

181 阅读1分钟

1.搭建 一个简单的 maven 项目 笔记记录

File ---> Project --> Maven (create from archetype 不使用骨架) ---> pom.xml (添加依赖 mybatis + mysql + junit )
<dependencies>
    <!--mybatis 依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.4</version>
    </dependency>
    <!--mysql-connector-java 依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <!--引入 junit 测试单元 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

2. 创建项目结构 附图如下

java > com.xx > dao > userDao.java(接口)
              > impl(file) > UserDaoImpl.java(实现类,可以不用)
              > pojo.po > TbUser(类)
              > util(工具类放置)> DBTools.java
resources > mybatis-config.xml(配置文件)
          > UserDao.xml(映射文件)

微信图片_20211109150354.png

附部分代码

mybatis-config.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>
    <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://127.0.0.1:3306/lx0407" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <!--要通知mybatis框架映射在哪里-->
    <mappers>
        <mapper resource="UserDao.xml"/>
    </mappers>

</configuration>

UserDao.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">
<!--命名空间 尽量写入Dao 层指定接口的全限定名-->
<mapper namespace="com.xx.dao.UserDao">
    <select id="listUsers" resultType="com.xx.pojo.po.TbUser">
        select stu_id,stu_name from stu where stu_name = "lyon";
    </select>
</mapper>

工具类 DBTools.java

package com.xc.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.Reader;

/**
 * User: Lyon
 * Date: 2021/11/09
 * Time: 15:54
 * Version:V1.0
 */
public class DBTools {
    public static SqlSessionFactory sessionFactory;

    static{
        try {
            //使用MyBatis提供的Resources类加载mybatis的配置文件
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            //构建sqlSession的工厂
            sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //创建能执行映射文件中sql的sqlSession
    public static SqlSession getSession(){
        return sessionFactory.openSession();
    }
}

测试类 UserDaoTest.java

package com.xx.dao;

import com.xx.pojo.po.TbUser;
import com.xx.util.DBTools;
import junit.framework.TestCase;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;
import java.util.List;

/**
 * @Author Li
 * @Date 2021/11/9 10:19
 * @Version 1.0
 */

public class UserDaoTest {
  private SqlSession sqlSession;
  @Before
  public void setUp() {
    sqlSession = DBTools.getSession();
  }
  @Test
  public void testListUsers(){
    UserDao userDao = sqlSession.getMapper(UserDao.class);
    System.out.println(userDao.listUsers().size());
  }
}