1. 程式人生 > 其它 >RestFul風格~~

RestFul風格~~

初識Mybatis

什麼是Mybatis

Mybatis框架也稱為ORM(Object Relational Mapper,物件關係對映) 框架。為了解決面向物件和關係型資料庫中資料不匹配的技術。通過描述Java物件與資料庫表之間的對映關係自動將Java應用程式的物件持久化到關係型資料庫表中

過程

依賴

User.java

package com.sty.pojo1;

import lombok.Data;

@Data
public class User {
    private int id;
    private String name;
    private String password;


}

UserDao.java

package com.sty.Mapper;

import com.sty.pojo1.User;

import java.util.List;

public interface UserDao {
    User  queryUserById(int id);
    List<User> queryAll();
}

UserMapper.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.sty.Mapper.UserDao">

    <select id="queryUserById" parameterType="int" resultType="user">
        select *
        from mybatis.user
        where id=#{id}
    </select>

    <select id="queryAll" resultType="user">
        select *
        from mybatis.user;
    </select>



</mapper>


mybatis-config.xml

<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">


<!---->
<configuration>

    <!--配置資料庫-->
    <properties resource="db.properties"/>

    <!--log4j配置-->
    <settings>
        <!--value是大寫-->
        <setting name="logImpl" value="LOG4J"/>
    </settings>

    <!--掃描包-->
<typeAliases>
   <typeAlias type="com.sty.pojo1.User" alias="user"/>
</typeAliases>



    <!--環境配置-->
    <environments default="development">

        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>

    </environments>



    <mappers>
        <mapper resource="com/sty/Mapper/UserMapper.xml"/>
    </mappers>



</configuration>

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&userSSL=true
username=root
password=root

log4j.properties

#將等級為BUG的日誌檔案輸出到控制泰console和檔案file中#
log4j.rootLogger=DEBUG,console,file

#控制檯輸出配置#
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n

#檔案輸出相關設定#
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/sty.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}[%c]%m%n]

#日誌輸出級別#
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PrepareStatement=DEBUG

Test

package com.sty;


import com.sty.Mapper.UserDao;
import com.sty.pojo1.User;
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 MyTest {

    @Test
    public void QueryUserByIdTest() throws IOException {


            //讀取配置檔案
        InputStream inputStream = Resources.getResourceAsStream("Mybatis-config.xml");

            //根據配置檔案,例項化SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //通過SqlSessionFactory,例項化SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();


        UserDao mapper = sqlSession.getMapper(UserDao.class);


        User user = mapper.queryUserById(1);
        System.out.println(user);


        List<User> users = mapper.queryAll();
        for (User user1 : users) {
            System.out.println(user1);
        }

//關閉
        sqlSession.close();




    }

}