SSM学习笔记(一) IDEA中使用maven构建mybatis

因为个人网页还没有搭建完成,但是要记笔记的需求,所以暂时先存在CSDN上,等回头自己服务器搭建好了,就不在这里了

每次内容都是构建完成后回忆写成
之前学校开的ssm课时太短了,老师随便说了两句就结课了,所以只好自己在网上找视频来学了,应该是万事开头难吧,mybatis的配置过程感觉有点复杂,总之复杂也好,不复杂也罢,就这几个组成部分罢了:mybatis.cfg.xml    xxxMapper.xml   pojo实体类    xxxMapper的interface   工具类和  测试类
-------------------------------------------------------------------------------先附一个目录结构吧
在这里插入图片描述

1.Idea配置

    1.idea中不能像myeclipse中一样直接右键new出来xml文件,所以只好在set中新建code模版,把xml文件的固定部分作为模版存放即可,具体操作file-》setting-》editor-》File and code templates
    2.idea创建maven项目使用webapp时需要注意,pom.xml中的版本改成1.8

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

    3.webapp的文档结构有缺失,需要补充。src目录下需要main和test两个文件夹,test设置为test root目录。
    main目录下需要创建resources文件夹,设置为resources root目录(存放xml文件)。还需要java文件夹,标记为sources root目录(java文件在这里)
  附上目录图片

2.默认配置

     1.mybatis.config.xml 配置jdbc连接数据库,mapper,注意这里driver的value值,java-mysql的jar包中有一个路径是com.mysql.jdbc.Driver,但是这个已经被废弃了。

<?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="dev">
        <environment id="dev">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="UNPOOLED">
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--必须写斜杠/-->
        <mapper resource="com/sz/mapper/GirlMapper.xml"></mapper>
    </mappers>
</configuration>

    2.mybatismapper.xml 个人认为是对sql语句的装配过程

<?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.xawl.mapper.GirlMapper"><!--这里是和实体类pojo的路径对应->


  <insert id="insert">
      insert into girl (name,flower) values (#{name},#{flower})

  </insert>
</mapper>

3.类部分

    1.pojo实体类部分

       一张表对应一个pojo实体类,对应的setget方法
pojo

    2.类mapper

        类mapper与mapper.xml部分对应,目前对interface的存在意义还不清楚,初学关系,这个问题暂时留作以后解决

在这里插入图片描述

    3.Util类

        负责SqlSession相关的事务

public class MybatisUtil {

    private static SqlSessionFactory sqlSessionFactory;

    static{//静态只执行一次
        String resource = "mybatis.cfg.xml";
        InputStream in = null;
        try {
            in = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(in != null){
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    public static SqlSession getSession(){
        return sqlSessionFactory.openSession();
    }

}

以上的部分内容也可以写在Test中(书上的写法),对于可复用性而言,这里就写在util工具类中了

    4.Test类

        

@Test
    public void test(){
        SqlSession sqlSession = MybatisUtil.getSession();
        GirlMapper mapper = sqlSession.getMapper(GirlMapper.class);
        Girl g = new Girl();
        g.setName("周冬雨");
        g.setFlower("梅花");
        mapper.insert(g);
        sqlSession.commit();
        sqlSession.close();
    }

mybatis第一节到此截至,考完试再说啦


这里是提及一个关于Mysql的小问题,今天连数据库连了半天老是提示host severTime 有问题,因为我本身今天建表的一个列类型就是DateTime,因为没有用过DateTime类型,所以一直在想是不是我的传值有问题,最后发现是mysql数据库的时区时间默认为system时,是美国时间,所以时间不对应,因而连不上,美国时间加上8小时就好了,这个部分之后会专门再开一节,暂时就这样。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值