eclipse新建maven工程安装mybatis框架

0、安装MySQL数据库

用户名和密码默认都为root,创建数据库和数据表,创建属性添加属性
在这里插入图片描述
基本常用SQL语句

create database wyu407;
use wyu407
create table t407 (
  id int(11),
  class_name varchar(20)
)select * from t407;

insert into t407(id,class_name)
 values(1, '407 class')update t407
   set class_name = '408 class'
 where id = 1delete from t407
 where id = 1drop table t407;

drop database wyu407;

1、安装maven插件

首先安装maven插件,下载 Maven,地址为 http://maven.apache.org/download.cgi,解压到任意非C盘位置,比如:D:\apache-maven-3.3.9,目前最新maven插件版本为3.3.9
在这里插入图片描述
它是以压缩包形式提供的,下载 Binary 形式的压缩包就行。
下载完成后,直接用解压工具解压到自己的一个空目录下
在这里插入图片描述
现在来仔细分析一下 Maven 的目录结构和内容。
1)bin
该目录包含了 mvn 运行的脚本,这些脚本用来配置 Java 命令,准备好 classpath 和相关的 Java 系统属性,然后执行 Java 命令。

其中 mvn 是基于 UNIX 平台的 shell 脚本,mvn.bat 是基于 Windows 平台的 bat 脚本。在命令行输入任何一条 mvn 命令时,实际上就是在调用这些脚本。

该目录还包含了 mvnDebug 和 mvnDebug.bat 两个文件,同样,前者是 UNIX 平台的 shell 脚本,后者是 Windows 平台的 bat 脚本。那么 mvn 和 mvnDebug 有什么区别和关系呢?

打开文件我们就可以看到,两者基本是一样的,只是 mvnDebug 多了一条 MAVEN_DEBUG_OPTS 配置,其作用就是在运行 Maven 时开启 debug,以便调试 Maven 本身。

此外,该目录还包含 m2.conf 文件,这是 classworlds 的配置文件,后面会介绍 classworlds。
2)boot
该目录只包含一个文件,以 maven 3.3.9 为例,该文件为 plexus-classworlds-2.5.2.jar。

plexus-classworlds 是一个类加载器框架,相对于默认的 java 类加载器,它提供了更丰富的语法以方便配置,Maven 使用该框架加载自己的类库。

更多关于 classworlds 的信息请参考 http://classworlds.codehaus.org/。对于一般的 Maven 用户来说,不必关心该文件。
3)conf
该目录包含了一个非常重要的文件 settings.xml。直接修改该文件,就能在机器上全局地定制 Maven 的行为。

一般情况下,我们更偏向于复制该文件至 ~/.m2/ 目录下(~表示用户目录),然后修改该文件,在用户范围定制 Maven 的行为。后面将会多次提到 settings.xml,并逐步分析其中的各个元素。
4)lib
该目录包含了所有 Maven 运行时需要的 Java 类库,Maven 本身是分模块开发的,因此用户能看到诸如 maven-core-3.0.jar、maven-model-3.0.jar 之类的文件。

此外,这里还包含一些 Maven 用到的第三方依赖,如 common-cli-1.2.jar、commons-lang-2.6.jar 等。

对于 Maven 2 来说,该目录只包含一个如 maven-2.2.1-uber.jar 的文件,原本各为独立 JAR 文件的 Maven 模块和第三方类库都被拆解后重新合并到了这个 JAR 文件中。可以说,lib 目录就是真正的 Maven。

关于该文件,还有一点值得一提的是,用户可以在这个目录中找到 Maven 内置的超级 POM,这一点教程后面会详细解释。
5)LICENSE.txt
记录了 Maven 使用的软件许可证Apache License Version 2.0。
6)NOTICE.txt
记录了 Maven 包含的第三方软件。
7)README.txt

修改setting,在maven中添加阿里的镜像(改善下载速度)。

具体的操作步骤是:
1.找到maven安装目录下conf文件夹下的settings.xml文件
2.在mirrors中添加阿里的镜像,删除原镜像

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
 
  <mirror> 
    <id>uk</id>  
    <mirrorOf>central</mirrorOf>  
    <name>Human Readable Name for this Mirror.</name>  
    <url>http://uk.maven.org/maven2/</url> 
  </mirror>
 
   <mirror>
    <id>CN</id>
    <name>OSChina Central</name>
    <url>http://maven.oschina.net/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
 
  <mirror>
    <id>nexus</id>
    <name>internal nexus repository</name>
    <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
    <url>http://repo.maven.apache.org/maven2</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
  </mirrors>

在这里插入图片描述
在这里插入图片描述

2.Maven 目录添加

打开 Myeclipse 中的菜Windows Preferences 在搜索框中搜索"maven",找到“Installations”,把刚才的 Maven 目录添加进去,并勾选。本案例把maven的zip包解压到D盘中了。
在这里插入图片描述
在cmd判断maven是否安装成功
在这里插入图片描述

3. 创建maven项目

创建maven项目,点击左上角的File New other 搜索“maven”,选择“Maven Project”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。
  
  比如我创建一个项目,我一般会将GroupId设置为cn.gmc,cn表示域为中国,gmc是我个人姓名缩写,ArtifactId设置为mybatistest,依照这个设置在你创建Maven工程创建之后截图

选择开发工具包jdk1.8(出现开发环境报错情况)

window>preferences
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为配置jdk开发环境
在这里插入图片描述
在这里插入图片描述

4、pom.xml

新增mysql和mybatis包,mysql包是底层的mysql api实现,mybatis会依赖它。其余和之前的保持一致,新增如下:

  <dependencies>
  <dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.1.0</version>
  </dependency>
	
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>8.0.15</version>
	</dependency>

保存后它会自动下载相关jar包

5、创建配置文件

全局配置文件SqlMapConfig

<?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.cj.jdbc.Driver"/><!--驱动-->
                <!--坑:值之间要用&amp;隔开;若出现乱码需添加characterEncoding=utf-8编码-->
                <property name="url" value="jdbc:mysql://localhost:3306/student?serverTimezone=GMT%2B8&amp;autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/><!--连接数据库用户名和密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers><!--连接操作源-->
        <mapper resource="User.xml"/>  <!-- 此处方便测试,放在和SqlMapConfig.xml同目录下,正式项目按规范的来 -->
    </mappers>
</configuration>

映射文件User.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属性,不然会报错,可看做包名-->
<mapper namespace="cn.gmc.mybatistest.mapper.UserMapper">
    <select id="findUserById" parameterType="int" resultType="cn.gmc.mybatistest.model.User">
        select * from student.new_table where s_id = #{s_id}<!--单个查询-->
    </select>
    <select id="findUserAll" resultType="cn.gmc.mybatistest.model.User">
        select * from student.new_table<!--查询全部-->
    </select>
    <insert id="insertUser" parameterType="cn.gmc.mybatistest.model.User">
        insert into new_table(name,age,sex,s_id) values(#{name},#{age},#{sex},#{s_id})<!--插入-->
    </insert>
    <delete id="deleteUserById" parameterType="int">
        delete from new_table where s_id=#{s_id}<!--删除->
    </delete>
    <update id="updateUserPassword" parameterType="cn.gmc.mybatistest.model.User">
        update new_table set name=#{name} where s_id=#{s_id}<!--修改-->
    </update>
</mapper>

接口类

package cn.gmc.mybatistest.mapper;
import java.util.List;

import cn.gmc.mybatistest.model.User;
public interface UserMapper {
	public User findUserById(int s_id);
    public List<User> findUserAll();
    public void insertUser(User user);
    public void deleteUserById(int s_id);
    public void updateUserPassword(User user);
}

实现类

package cn.gmc.mybatistest.model;

public class User {
	
    private String name;
    private Integer age;
    private String sex;
    private Integer s_id;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getS_id() {
		return s_id;
	}
	public void setS_id(Integer s_id) {
		this.s_id = s_id;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}

	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + ", sex=" + sex + ", s_id=" + s_id + "]";
	}

}

}

测试代码

package cn.gmc.mybatistest;

import java.io.InputStream;
import java.util.List;

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 cn.gmc.mybatistest.mapper.UserMapper;
import cn.gmc.mybatistest.model.User;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;


public class AppTest 

{
    //@org.junit.Test   直接执行方法
	public void findUserByID() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------
        UserMapper userMapper = session.getMapper(UserMapper.class);
        User user = userMapper.findUserById(1001);
        System.out.println(user);
        //--------------
        session.close();
    }
    public void findAll() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------------
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> user = mapper.findUserAll();
        for (User user2 : user) {           
            System.out.println(user2.toString());
        }
        //----------------------
        session.close();
    }
  
    public void insertTest() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------------
        User user = new User();
        user.setS_id(1005);
        user.setName("genera");

        user.setAge(12);
        user.setSex("W");

        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.insertUser(user);
        session.commit();
        //----------------------
        session.close();
    }

    public void deleteUserById() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------------
        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.deleteUserById(1005);
        session.commit();
        //----------------------
        session.close();
    }

    public void updateUserPassword() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------------
        User user = new User();
        user.setS_id(1000);
        user.setName("gaile");

        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.updateUserPassword(user);
        session.commit();
        //----------------------
        session.close();
    }
	
    public static void main(String[] args) throws Exception {

    	AppTest appTest = new AppTest();
    	appTest.findAll();
//    	appTest.insertTest();
//    	appTest.findUserByID();
 //   	appTest.updateUserPassword();
  //  	appTest.deleteUserById();
    	
    	
    }
}

tip :若出现报包错误可直接删除所有引用,ctrl+shift+o重新导入

直接执行方法体(快捷)

porn.xml添加junit依赖,保存

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

导入import java.util.List;

	@org.junit.Test   //直接执行方法
	public void findUserByID() throws Exception{
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = factory.openSession();
        //---------------
        UserMapper userMapper = session.getMapper(UserMapper.class);
        User user = userMapper.findUserById(1001);
        System.out.println(user);
        //--------------
        session.close();
    }

在这里插入图片描述
完成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值