博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018超直白入门demo:IDEA+Maven+MyBatis
阅读量:6837 次
发布时间:2019-06-26

本文共 3524 字,大约阅读时间需要 11 分钟。

用2018年最新版IDEA和mybatis配置mybatis,因为在网上找了大半天没有找到合适我这个新手的资料,总是跑不起来,各种报错,所以现在详细记录下一个超简单的mybatis项目,这是从创建文件到找到第一条的数据的过程,贴上代码,主要是一些在网上很难搜到的新人不知道的细节,用以方便自己和新人查漏补缺。

这是github地址,可以直观地看目录结构:

一、在网上很多大多的文件结构是这种,这是用maven创建的webapp项目,实际上单纯的跑第一个项目根本不需要webapp,而且其中的POJO文件和resource文件夹都不是自动生成,而是自己创建的。

(坑1:这也令我困惑了很久,怎么找不到网上说的这种文件结构,下面是具体的文件介绍)

二、创建项目模板:maven+quickstart

2.1

坑2:java版本不要用jdk9以上的版本,一开始我用的jdk10就报错,至于如何在IEDA里面jdk切换成其他版本,百度就行,网上有解决办法;quickstart和webapp都可以,我这里用的是quickstart模板。

坑3:创建项目名不要有破折号,不然会导致之后文件内创建不了Class类)。

2.2 maven的配置,都一样,网上很多maven的教程。

三、初始配置

3.1 在pom.xml文件内添加Mysql驱动和Mybatis依赖,然后点击右下角的import。

mysql
mysql-connector-java
6.0.6
org.mybatis
mybatis
3.4.4
复制代码

3.2 此时的初始文件结构如下,csdnMybatis这是我的项目名,这个项目结构都是自动生成的。

3.3 创建resource文件夹,注意与java文件夹同级,并设置为Resources Root(意思大概是让外面的java文件能够访问到里面的资源)

附:关于resource配置信息一不小心踩中其中某个坑,就会报Exception in thread "main" org.apache.ibatis......的错误。

(坑4:这个resource文件夹是自己创建的,而且要自己设置权限为Resourcr Root,不然之后代码会访问不到xml配置文件,报错)

四、以上几乎是固定的,下面是配置文件信息,书写resource文件夹内文件信息

4.1 在resource文件夹里面创建两个xml文件,此时文件结构如下:

4.2 在Mybatis-config这个mybatis配置文件下,写下如下代码:

复制代码

这里有四个需要注意的地方,

坑5:第一个标记好像是因为mysql版本太新了,需要将vaule="com.mysql.jdbc.Driver"改成"com.mysql.jdbc.Driver",不然虽然同样有结果,但会报红:

第二个标记 test 代表了用户的的数据库,第三个标记分别是用户名和密码,

坑6:第四个标记对应了刚刚创建的TableDAO.xml文件。

4.3 在TableDAO.xml文件内写下如下代码:

复制代码

这只是一个简单的搜索语句,这里也有好多坑,网上写法太多了,但在这种环境下,我只实验出了我这种写法正确,有四个需要注意的地方,之后会用到,在我的例子里面直接这样子写:

坑7: namespace="csdnMybatis"对应之后需要运行的文件(TestMybatis--之后创建的)所在的文件夹;(如果文件更深,可能就需要多层结构,但本示例不需要)

坑8: resultType=“csdnMybatis.Twebsites”对应之后创建的类名;

id="getWebsiteById"之后会用到,SQL语句中的websites对应所搜索的表名;

五、类文件和主体文件

5.1 在csdnMybatis下创建两个文件,位置对应4.3的写法,此时全部的文件结构如下:

5.2 在Twebsite文件内,写如下代码:

(不必要写完全表的字段名,写几个简单的就行)

package csdnMybatis;public class Twebsites {    private int id;    private String name;    public int getId(){ return id;}    public void setId(int id){this.id=id;}    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}复制代码

表的内容如下,随便一个含id和name两个字段的表都能用这段代码:

5.3 主体文件,也就是在运行的文件内写如下代码,即可:

package csdnMybatis;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class TestMybatis {    public static void main(String[] args) throws IOException {        String resource = "Mybatis-config.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession session = sqlSessionFactory.openSession();        Twebsites c=  session.selectOne("getWebsiteById",2);        System.out.println(c.getName());        session.commit();        session.close();    }}复制代码

5.4 之后可能会报错

这就需要配置下运行路径

运行结果,无报错

六、新学JAVA,写了2小时多点,这只是一个IDEA+MAVEN运行Mybatis的简单项目,如果运行不了我上述的简单项目或者有不对的地方,欢迎评论。关于排版,如果有需要我会重新排下。

转载地址:http://zwhkl.baihongyu.com/

你可能感兴趣的文章
电子工程师必须知道的10个网站 !!!
查看>>
我的友情链接
查看>>
防Xss攻击,包含富文本编辑器的处理
查看>>
MyBatis延迟加载
查看>>
利用MAVEN打包可运行jar包,包括依赖的第三方包
查看>>
Java调用 shell脚本阻塞
查看>>
rabbitmy实战
查看>>
mysql-Mac终端下遇到的问题总结
查看>>
表空间迁移(二)
查看>>
准备mysql函数库和PHP文件
查看>>
初学者应该了解的编程陷阱:javascript篇
查看>>
【安全牛学习笔记】手动漏洞挖掘(三)
查看>>
硬链接和软链接使用,以及区别
查看>>
history的详解与使用
查看>>
随机数
查看>>
【入门须知】学DIV CSS技术如何入门?
查看>>
Bullmind在线读书笔记软件
查看>>
wince 6.0 串口 读取 readfile 超时问题
查看>>
代码片段
查看>>
单例模式
查看>>