【记录】在IDEA里面使用Mybatis

2 篇文章 0 订阅
1 篇文章 0 订阅

MyBatis基础环境搭建(使用idea,meven)看了这篇文章搭的环境,由于感觉自我操作下来感觉有点不一样,特做记录

目录

·point

·修改settings.xml

进入conf目录下的settings.xml

添加我们要用的依赖

项目结构

两种方式对表进行全部查询

·需要配置xml文件的形式

·不需要xml的形式

·额外要补充的


·point

工具:ideaiu。

依赖:mybatis3.4.6    junit4.12    mysql-connector-java5.1.37    log4j1.2.12   lombok 1.16.20

顺便解决了maven拉取依赖过慢的问题,配置一个镜像

·修改settings.xml

进入conf目录下的settings.xml

加入以下在看注释在相应位置加上三段设置

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>F:\traingdaily\mevendepend\.m2\repository</localRepository>
<!--这里是我自己的本地仓库位置,你更改为你要存放的位置,不然默认可能是在C盘,我不喜欢C盘放这么多乱七八糟的东西就改了--!>

解决下载不动依赖包的问题,添加镜像

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
  </mirrors>

添加我们要用的依赖

在pom.xml中

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.37</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

</dependencies>

有不认识的依赖可以自己去查一下,下面会简单提一下干嘛用的

项目结构

TestObserver这个包是不必要的

maven一路next就行了,啥都不用加,或者你可以网上查看mybatis用maven简单搭建的教程

两种方式对表进行全部查询

·需要配置xml文件的形式

建立pojo包下的Person 类→mapper包下的PersonMapper 接口→@Test,junit的单元测试

import lombok.Data;

import java.io.Serializable;

@Data
public class Person implements Serializable {
    private int id;
    private String username;
    private String jobs;
    private String phone;

}

@Data是lombok

Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。(该段摘自网络)

public interface PersonMapper {
    /**
     * 查询所有用户
     * @return
     */
    List<Person> findAll();
}

在resource下建立包,要用这种形式com/xx/xx/XXMapper.xml.具体对照下我的项目结构,这样实际编译的时候如图下所示

PersonMapper.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.yjy.mapper.PersonMapper">

  
    <select id="findAll" resultType="com.yjy.pojo.Person">
        select * from t_customer
    </select>

</mapper>

在resource下建立mybatis-config.xml和log4j.properties

内容如下

<?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>

    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="你的数据库连接用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 告知 mybatis 映射配置的位置 -->
    <mappers>
        <mapper resource="com/yjy/mapper/PersonMapper.xml"/>
        <mapper class="com.yjy.mapper.UserMapper"/>
    </mappers>

</configuration>
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

第一个测试方法

@Test
    public void Test1()throws IOException{
        InputStream config= Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(config);
        SqlSession session=factory.openSession();
        PersonMapper personMapper=session.getMapper(PersonMapper.class);
        List<Person> persons=personMapper.findAll();
        for (Person person:persons){
            System.out.println(person);
        }
        session.close();
        config.close();
    }

结果

这些日志对日后学习有帮助,不知道为啥当初Myeclipse配置log4j不生效

·不需要xml的形式

import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {
    /**
     * 查询所有用户
     */
    @Select("select * from t_user")
    List<User> findAll();
}
<mapper class="com.yjy.mapper.UserMapper"/>

·额外要补充的

如果报错了,注意看看配置的mapper位置对不对,基本上就是这里的错误

数据库

/*
SQLyog 企业版 - MySQL GUI v8.14 
MySQL - 5.0.96-community-nt : Database - mybatis
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `mybatis`;

/*Table structure for table `t_customer` */

DROP TABLE IF EXISTS `t_customer`;

CREATE TABLE `t_customer` (
  `id` int(32) NOT NULL auto_increment,
  `username` varchar(50) default NULL,
  `jobs` varchar(50) default NULL,
  `phone` varchar(16) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

/*Data for the table `t_customer` */

insert  into `t_customer`(`id`,`username`,`jobs`,`phone`) values (1,'joy','doctor','15958024180'),(2,'jack','teacher','18858832868'),(3,'tom','ccc','133333333333'),(4,'roes','programmer','1145141191'),(9,'roes1','students1','1145141191');

/*Table structure for table `t_user` */

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (
  `t_id` int(11) NOT NULL auto_increment,
  `t_name` varchar(50) default NULL,
  `t_age` int(11) default NULL,
  PRIMARY KEY  (`t_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*Data for the table `t_user` */

insert  into `t_user`(`t_id`,`t_name`,`t_age`) values (1,'Lily',25),(2,'Lucy',20),(3,'Jim',20);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值