MyBatis配置及實現CURD操作

fmms 13年前發布 | 72K 次閱讀 MyBatis MyBatis3 持久層框架

MyBatis 的前身就是 iBatis 。是一個數據持久層(ORM)框架。

每個MyBatis應用程序主要都是使用SqlSessionFactory實例的,一個SqlSessionFactory實例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預定義的配置類的實例獲得。


一、前提條件

建立表:admin_login_id

數據庫結構

int log_id 主鍵

int admin_id

varchar login_time

domain:

package com;

import java.util.Date;

/**
 * @function : 
 * @author   :jy
 * @company  :萬里網
 * @date     :2011-7-31
 */
public class Logs {
    public int log_id;
    public int admin_id;
    public Date login_time;

    public int getLog_id() {
        return log_id;
    }
    public void setLog_id(int log_id) {
        this.log_id = log_id;
    }
    public int getAdmin_id() {
        return admin_id;
    }
    public void setAdmin_id(int admin_id) {
        this.admin_id = admin_id;
    }
    public Date getLogin_time() {
        return login_time;
    }
    public void setLogin_time(Date login_time) {
        this.login_time = login_time;
    }
    @Override
    public String toString() {
        return "Logs [log_id=" + log_id + ", admin_id=" + admin_id + ", login_time=" + login_time + "]";
    }

}

二、下面開始配置MyBatis

1.MyBatis總配置文件

<?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>
    <typeAliases>
        <typeAlias alias="Logs" type="com.Logs"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/manage?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/LogsMapper.xml" />
    </mappers>
</configuration>

2.實體映射文件

<?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.LogsDAO" >

  <select id="queryAllLogs" resultType="com.Logs">
    SELECT
      log_id,
      admin_id,
      login_time
    FROM admin_login_log
  </select>

  <select id="queryStudentById" resultType="Logs" parameterType="int">
    SELECT 
      log_id,
      admin_id,
      login_time
    FROM admin_login_log
    WHERE
      log_id=#{log_id}
  </select>

  <insert id="addLog" parameterType="Logs">
    INSERT INTO admin_login_log 
        (log_id, admin_id, login_time)
    VALUES
        (log_id, #{admin_id}, #{login_time})
  </insert>

  <delete id="deleteLogById" parameterType="int">
    DELETE FROM
        admin_login_log
    WHERE
        log_id=#{log_id}
  </delete>

  <select id="queryLogsByAdminId" parameterType="string" resultType="Logs">
    SELECT 
        log_id,
        admin_id,
        login_time
    FROM 
        admin_login_log
    WHERE
        admin_id like #{admin_id}
  </select>
</mapper>

 

三、建立DAO接口

package com;

import java.util.List;

/**
 * @function : 
 * @author   :jy
 * @company  :萬里網
 * @date     :2011-7-31
 */
public interface LogsDAO {
    public void addLog(Logs log);

    public void deleteLogById(int id);

    public void updateStudentById(Logs log);

    public List<Logs> queryAllLogs();

    public Logs queryStudentById(int id);

    public List<Logs> queryLogsByAdminId(String admin_id);
}


四、建立SqlSessionFactory實例,并實現LogsDAO接口

package com;

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

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * @function : 
 * @author   :jy
 * @company  :萬里網
 * @date     :2011-7-31
 */
public class LogsDAOImpl implements LogsDAO {
    private static SqlSession session = null;
    private static LogsDAO mapper = null;

    static{
        String resoure = "com/ibatisConfiguration.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resoure);
        } catch (IOException e) {
            e.printStackTrace();
        }

        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        session = sqlSessionFactory.openSession();
        mapper = session.getMapper(LogsDAO.class);

        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /* (non-Javadoc)
     * @see com.LogsDAO#addLog(com.Logs)
     */
    @Override
    public void addLog(Logs log) {
        mapper.addLog(log);

        session.commit();
    }

    /* (non-Javadoc)
     * @see com.LogsDAO#deleteLogById(int)
     */
    @Override
    public void deleteLogById(int id) {
        mapper.deleteLogById(id);

        session.commit();
    }

    /* (non-Javadoc)
     * @see com.LogsDAO#updateStudentById(com.Logs)
     */
    @Override
    public void updateStudentById(Logs log) {


    }

    /* (non-Javadoc)
     * @see com.LogsDAO#queryAllLogs()
     */
    @Override
    public List<Logs> queryAllLogs() {
        List<Logs> logs = mapper.queryAllLogs();

        return logs;
    }

    /* (non-Javadoc)
     * @see com.LogsDAO#queryStudentById(int)
     */
    @Override
    public Logs queryStudentById(int id) {
        Logs logs = mapper.queryStudentById(id);

        return logs;
    }

    /* (non-Javadoc)
     * @see com.LogsDAO#queryLogsByAdminId(java.lang.String)
     */
    @Override
    public List<Logs> queryLogsByAdminId(String admin_id) {
        return mapper.queryLogsByAdminId(admin_id);
    }

}

 

五、測試

package test;

import java.io.IOException;

import com.Logs;
import com.LogsDAOImpl;

/**
 * @function : 
 * @author   :jy
 * @company  :萬里網
 * @date     :2011-7-31
 */
public class Test {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        LogsDAOImpl logs = new LogsDAOImpl();

//      System.out.println(logs.queryAllLogs());

//      Logs log = logs.queryStudentById(2);

//      System.out.println(log);


        //addlog
        Logs log = new Logs();

        log.setAdmin_id(1);

        log.setLog_id(10);

        log.setLogin_time(new java.util.Date());

        logs.addLog(log);

        //deleteLog
        logs.deleteLogById(5);

        System.out.println(logs.queryLogsByAdminId("%1%"));
    }

}



 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!