1. 程式人生 > >MyBatis 開發記錄

MyBatis 開發記錄

null 數據庫 fin 用戶id 宋體 ron 數據 nag private

1、在classpath下創建log4j.properties

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# 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

2、在classpath

下創建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>

  <!-- spring整合後 environments配置將廢除-->

  <environments default="development">

    <environment id="development"

>

      <!-- 使用jdbc事務管理-->

      <transactionManager type="JDBC" />

      <!-- 數據庫連接池-->

      <dataSource type="POOLED">

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

        <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"

/>

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

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

      </dataSource>

    </environment>

  </environments>

</configuration>

3、創建與數據庫對應的PO類,PO類用於mybatis的sql映射

4、在classpath下的sqlmap目錄下創建sql映射文件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">

<mapper namespace="test">

  <!-- 根據id獲取用戶信息 -->

  <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">

    select * from user where id = #{id}

  </select>

  <!-- 自定義條件查詢用戶列表 -->

  <select id="findUserByUsername" parameterType="java.lang.String"

    resultType="cn.itcast.mybatis.po.User">

  select * from user where username like ‘%${value}%‘

  </select>

</mapper>

5、加載映射文件

<mappers>

  <mapper resource="sqlmap/User.xml"/>

</mappers>

6、測試程序

public class Mybatis_first {
    
    //會話工廠
    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void createSqlSessionFactory() throws IOException {
        // 配置文件
        String resource = "SqlMapConfig.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 使用SqlSessionFactoryBuilder從xml配置文件中創建SqlSessionFactory
        sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

    }

    // 根據 id查詢用戶信息
    @Test
    public void testFindUserById() {
        // 數據庫會話實例
        SqlSession sqlSession = null;
        try {
            // 創建數據庫會話實例sqlSession
            sqlSession = sqlSessionFactory.openSession();
            // 查詢單個記錄,根據用戶id查詢用戶信息
            User user = sqlSession.selectOne("test.findUserById", 10);
            // 輸出用戶信息
            System.out.println(user);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }

    }

    // 根據用戶名稱模糊查詢用戶信息
    @Test
    public void testFindUserByUsername() {
        // 數據庫會話實例
        SqlSession sqlSession = null;
        try {
            // 創建數據庫會話實例sqlSession
            sqlSession = sqlSessionFactory.openSession();
            // 查詢單個記錄,根據用戶id查詢用戶信息
            List<User> list = sqlSession.selectList("test.findUserByUsername", "張");
            System.out.println(list.size());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }

    }
}

MyBatis 開發記錄