MyBatis-(1)初次尝试(编译器idea,maven工程,数据库mysql)

目录

 

一、依赖库

一、  首先,导入jar包,通过库依赖方式导入,将依赖加入到pom.xml中的

dependencies标签之间(jar包版本选自己适用的即可)

1、导入MyBatis   jar 包,其库依赖:

2、导入jadc jar包,其库依赖为:

3、导入测试jar包 junit(测试用)

4、导入日志jar包,(显示日志用)

二、我的数据库测试用表,表名为user

一、属性

二、其值

三、手动创建 接口类、实体类

一、创建接口类

在包com.test.dao下面创建一个接口类Student,如图:

二、创建实体类

在包com.test.domain下创建实体类SaveStudent

四、在resources下创建资源文件

一、资源文件的目录如图:

二、在resources下的com.test.dao包中创建执行SQL的xml文件,名为Student

三、在resources下创建配置文件batis_config

四、配置一个日志文件log4j.properties(本人较菜,直接复制的)

五、创建一个测试类

在包com.test.service中创建测试类,TestMybatis

六、执行结果(截取有结果的部分)

七、若是执行插入操作

一、在Student接口类中写入

二、在执行文件的xml中添加SQL语句,直接放在Student的xml文件中的mapper标签中

三、在一个方法中进行测试(加载文件的前五步放到了全局中去,此处省略了)

四、结果


一、依赖库

一、  首先,导入jar包,通过库依赖方式导入,将依赖加入到pom.xml中的

dependencies标签之间(jar包版本选自己适用的即可)

1、导入MyBatis   jar 包,其库依赖:

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.0</version>
        </dependency>

2、导入jadc jar包,其库依赖为:

<dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.25</version>
 </dependency>

3、导入测试jar包 junit(测试用)

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>

4、导入日志jar包,(显示日志用)

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.13</version>
        </dependency>

二、我的数据库测试用表,表名为user

一、属性

二、其值

三、手动创建 接口类、实体类

一、创建接口类

在包com.test.dao下面创建一个接口类Student,如图:

二、创建实体类

在包com.test.domain下创建实体类SaveStudent

四、在resources下创建资源文件

一、资源文件的目录如图:

二、在resources下的com.test.dao包中创建执行SQL的xml文件,名为Student

<中文部分为自己手动添加注释,删除即可>
<?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">
<这两行为MyBatis的约束,有了这个,就可以是别MyBatis中的标签,可以直接复制>


<mapper namespace="com.test.dao.Student">
    <select id="selectAllStudent" resultType="com.test.domain.SaveStudent">
        select id,name from user
    </select>
<select标签标示查询,同样insert、update、delete分别标示插入、修改、删除,上述中的namespace中表示的是接口的路径,执行是通过路径找到此接口,select标签中的id是接口中的方法名,后边的那句
resultType="com.test.domain.SaveStudent"表示的是返回值,这个返回值类型是一个类的对象,标示把查询的内容储存到实体类之中,这个路径也是这个类的路径,然后下面就是要查询的SQL语句了>


</mapper>

三、在resources下创建配置文件batis_config

<?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>
<!--这两句是约束,有了这个就可以识别MyBatis中的标签,直接复制即可-->

    <!--配置mybatis环境,名字自己取-->
    <environments default="work">
        <!--配置工作环境,名字自己取-->
        <environment id="work">
            <!--配置事务类型-->
            <!-- 这是数据库连接池-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接数据库的信息:用的是数据源(连接池)
                mybatis内置的连接池
            -->
            <dataSource type="POOLED">
<!--                 name后的值是固定的-->
                <!-- 这是加载驱动,如果是8.0以上的mysql,应为 com.mysql.cj.jdbc.Driver-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- website这个是我数据库的名字               -->
                <property name="url" value="jdbc:mysql://localhost:3306/website?serverTimezone=Asia/Shanghai"/>
<!--                root是我的登录名-->
                <property name="username" value="root"/>
<!--                123456是我的登录密码-->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!--配置mybatis映射配置的位置-->
    <mappers>
<!--        这个识别的是resources下的数据库执行的xml文件通过路径查找,如有多个,直接用mapper添加即可-->
        <mapper resource="com.test.dao/Student"></mapper>
    </mappers>
</configuration>

四、配置一个日志文件log4j.properties(本人较菜,直接复制的)

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
#在倒数第四五行左右,d:\axis.log,表示在此盘下创建一个日志文件

五、创建一个测试类

在包com.test.service中创建测试类,TestMybatis

package com.test.service;

import com.test.dao.Student;
import com.test.domain.SaveStudent;
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 org.junit.Test;

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

public class TestMybatis {
    @Test
    public void testFindAll(){
        try {
            // 1.读取配置文件
            InputStream resourceAsStream = Resources.getResourceAsStream("batis_config");
            // 2.构建者模式:创建构建者对象SqlSessionFactoryBuilder
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            // 3.使用构建者创建工厂对象SqlSessionFactory
            SqlSessionFactory build = builder.build(resourceAsStream);
            // 4.使用SqlSessionFactory生产SqlSession对象
            SqlSession sqlSession = build.openSession();
            // 5. 使用SqlSession创建dao接口的代理对象
            Student mapper = sqlSession.getMapper(Student.class);

            // 6.使用代理对象执行查询所有方法
            List<SaveStudent> allStudent = mapper.selectAllStudent();
            // 7.遍历结果
            for (SaveStudent student : allStudent){
                System.out.println(student.getId()+" "+student.getName());
            }

            // 8.释放资源
            resourceAsStream.close();
            sqlSession.close();



        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

六、执行结果(截取有结果的部分)

七、若是执行插入操作

一、在Student接口类中写入

二、在执行文件的xml中添加SQL语句,直接放在Student的xml文件中的mapper标签中

解释:id同样为Student接口中方法的名字,

<insert id="insertus" parameterType="com.test.domain.SaveStudent">
        insert into user(id,name)
        values(#{id},#{name})
    </insert>

三、在一个方法中进行测试(加载文件的前五步放到了全局中去,此处省略了)

 //插入表user
    @Test
    public void insertUser(){
        SaveStudent saveStudent=new SaveStudent();
        saveStudent.setId("000000");
        saveStudent.setName("000000");
        int count=mapper.insertus(saveStudent);
        System.out.println(count);
    }

四、结果

这是运行后的日志文件,Updates这个是表示一条记录以更新

可以看到一条数据已经插入成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值