发表于: 2018-05-19 23:14:49

2 1287


今天完成的事情:

 

引入junitJar包。

  <dependency>

           <groupId>io.nervous</groupId>

           <artifactId>juint</artifactId>

           <version>0.1.0</version>

       </dependency>

 

*创建log4j.properties

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# MyBatis logging configuration...

log4j.logger.org.mybatis.example.BlogMapper=TRACE

# 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

 

 

*编写User.java ,用于接收输出参数,将查询的记录封装到该类中

public class User {

    private int id;

    private String name;

    private String city;

 

    public void setId(int id) {

        this.id = id;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public void setCity(String city) {

        this.city = city;

    }

 

    public int getId() {

        return id;

    }

 

    public String getName() {

        return name;

    }

 

    public String getCity() {

        return city;

    }

 

    @Override

    public String toString() {

        return "User{" +

                "id=" + id +

                ", name='" + name + '\'' +

                ", city='" + city + '\'' +

                '}';

    }

}

 

 

*编写全局配置文件sqlMapConfig.xml

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

    <!--

             属性

        <properties></properties>

             全局参数设置

        <settings></settings>

             类型别名

        <typeAliases></typeAliases>

            类型处理器

        <typeHandles></typeHandles>

            对象工厂

        <objectFactory></objectFactory>

            插件

        <plugins></plugins>

        以上属性在后边会详细讲解到,现在我们就只需要关注一下下面的配置即可

            如下所配置的就是使用这点东西。

        environments(环境信息集合)

            environment(单个环境信息)

                transactionManager(事物)

                dataSource(数据源)

            environment

        environments

        mappers(映射器)

    -->

 

 

    <!-- 配置mybatis的环境信息 -->

    <environments default="development">

        <environment id="development">

            <!-- 配置JDBC事务控制,由mybatis进行管理 -->

            <transactionManager type="JDBC"></transactionManager>

            <!-- 配置数据源,采用dbcp连接池 -->

            <dataSource type="POOLED">

                <property name="driver" value="com.mysql.jdbc.Driver"/>

                <property name="url" value="jdbc:mysql://localhost:3306/test1"/>

                <property name="username" value="root"/>

                <property name="password" value="mysql"/>

            </dataSource>

        </environment>

    </environments>

    <!-- 加载mapper映射文件 -->

    <mappers>

        <mapper resource="User.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">

<!-- namespace:命名空间,对sql进行一个分类管理 -->

<!-- 注意:namespace在mapper代理时,具有重要且特殊的作用 -->

<mapper namespace="test">

    <!--

            使用id进行查询

        查询,使用select来表示一个查询的statement,相当于statement.executeQuery

        id:表示该statement唯一标识

        parameterType:输入参数类型

        resultType:输出参数类型,使用的是User类,则会将查询出来的记录封装到该类中

        #{id}:使用#{}接收输入的参数,其中的"id"属性名任意,可以为uid,也可以为别的。

      -->

    <select id="findUserById" parameterType="java.lang.Integer" resultType="User">

        SELECT * FROM signXzy WHERE id=#{id};

    </select>

    <select id="findUserByName" parameterType="java.lang.String" resultType="User">

        SELECT *FROM  signXzy WHERE name LIKE '%${value}%';

    </select>

 

 

*测试:

--测试一: 按照id查询对象:

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.Before;

import org.junit.Test;

 

import java.io.IOException;

import java.io.InputStream;

 

import static org.junit.Assert.*;

 

public class TaskStep17_1Test {

    SqlSession sqlSession;

    @Before

            public void before() throws IOException{

        //跟hibernate一样,需要获取一大堆东西

        // 1、读取配置文件

        String resource = "SqlMapConfig.xml";

        InputStream inputStream = inputStream = Resources.getResourceAsStream(resource);

 

        // 2、根据配置文件创建SqlSessionFactory

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 3、SqlSessionFactory创建SqlSession

        sqlSession = sqlSessionFactory.openSession();

    }

 

 

    @Test

        public void test1()

            throws IOException

    {

            // 4、SqlSession执行statement,并返回映射结果

            /*

             * test.findUserById:在映射配置文件中,mapper的namespace为test,

             *                     其中有一个select,也就代表查询的statement。

             * 1:输入参数为1

             * 返回的结果类型为User

             */

            User user = sqlSession.selectOne("test.findUserById",2);

            User user2=sqlSession.selectOne("test.findUserById",3);

            System.out.println(user);

           System.out.println(user2);

            //5、关闭sqlsession资源

            sqlSession.close();

        }


以下是输出结果:

 

明天计划的事情:

完成任务一的步骤17。



遇到的问题:

无。


收获:

学会了用配置文件去管理数据库。


返回列表 返回列表
评论

    分享到