MyBatis 配置及实现 CURD 操作

来源:互联网 发布:佳能网络打印机驱动 编辑:程序博客网 时间:2024/06/05 18:58

本文摘抄自网络

MyBatis 的前身就是 iBatis 。是一个数据持久层(ORM)框架。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。


一、前提条件

建立表:admin_login_id

数据库结构

int log_id 主键

int admin_id

varchar login_time

domain:

查看源码
打印?
01package com;
02  
03import java.util.Date;
04  
05/**
06 * @function : 
07 * @author   :jy
08 * @company  :万里网
09 * @date     :2011-7-31
10 */
11public class Logs {
12    publicint log_id;
13    publicint admin_id;
14    publicDate login_time;
15      
16    publicint getLog_id() {
17        returnlog_id;
18    }
19    publicvoid setLog_id(intlog_id) {
20        this.log_id = log_id;
21    }
22    publicint getAdmin_id() {
23        returnadmin_id;
24    }
25    publicvoid setAdmin_id(intadmin_id) {
26        this.admin_id = admin_id;
27    }
28    publicDate getLogin_time() {
29        returnlogin_time;
30    }
31    publicvoid setLogin_time(Date login_time) {
32        this.login_time = login_time;
33    }
34    @Override
35    publicString toString() {
36        return"Logs [log_id=" + log_id +", admin_id=" + admin_id +", login_time=" + login_time + "]";
37    }
38      
39}

二、下面开始配置MyBatis

1.MyBatis总配置文件

查看源码
打印?
01<?xmlversion="1.0"encoding="UTF-8"?>
02<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
03"http://mybatis.org/dtd/mybatis-3-config.dtd">
04  
05<configuration>
06    <typeAliases>
07        <typeAliasalias="Logs"type="com.Logs"/>
08    </typeAliases>
09    <environmentsdefault="development">
10        <environmentid="development">
11            <transactionManagertype="JDBC"/>
12            <dataSourcetype="POOLED">
13                <propertyname="driver"value="com.mysql.jdbc.Driver"/>
14                <propertyname="url"value="jdbc:mysql://localhost:3306/manage?characterEncoding=UTF-8"/>
15                <propertyname="username"value="root"/>
16                <propertyname="password"value=""/>
17            </dataSource>
18        </environment>
19    </environments>
20      
21    <mappers>
22        <mapperresource="com/LogsMapper.xml"/>
23    </mappers>
24</configuration>

2.实体映射文件

查看源码
打印?
01<?xmlversion="1.0"encoding="UTF-8"?>
02<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
03"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
04  
05<mappernamespace="com.LogsDAO">
06  
07  <selectid="queryAllLogs"resultType="com.Logs">
08    SELECT
09      log_id,
10      admin_id,
11      login_time
12    FROM admin_login_log
13  </select>
14    
15  <selectid="queryStudentById"resultType="Logs"parameterType="int">
16    SELECT 
17      log_id,
18      admin_id,
19      login_time
20    FROM admin_login_log
21    WHERE
22      log_id=#{log_id}
23  </select>
24    
25  <insertid="addLog"parameterType="Logs">
26    INSERT INTO admin_login_log 
27        (log_id, admin_id, login_time)
28    VALUES
29        (log_id, #{admin_id}, #{login_time})
30  </insert>
31    
32  <deleteid="deleteLogById"parameterType="int">
33    DELETE FROM
34        admin_login_log
35    WHERE
36        log_id=#{log_id}
37  </delete>
38    
39  <selectid="queryLogsByAdminId"parameterType="string"resultType="Logs">
40    SELECT 
41        log_id,
42        admin_id,
43        login_time
44    FROM 
45        admin_login_log
46    WHERE
47        admin_id like #{admin_id}
48  </select>
49</mapper>

 

三、建立DAO接口

查看源码
打印?
01package com;
02  
03import java.util.List;
04  
05/**
06 * @function : 
07 * @author   :jy
08 * @company  :万里网
09 * @date     :2011-7-31
10 */
11public interface LogsDAO {
12    publicvoid addLog(Logs log);
13      
14    publicvoid deleteLogById(intid);
15      
16    publicvoid updateStudentById(Logs log);
17      
18    publicList<Logs> queryAllLogs();
19      
20    publicLogs queryStudentById(intid);
21      
22    publicList<Logs> queryLogsByAdminId(String admin_id);
23}


四、建立SqlSessionFactory实例,并实现LogsDAO接口

查看源码
打印?
01package com;
02  
03import java.io.IOException;
04import java.io.Reader;
05import java.util.List;
06  
07import org.apache.ibatis.io.Resources;
08import org.apache.ibatis.session.SqlSession;
09import org.apache.ibatis.session.SqlSessionFactory;
10import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11  
12/**
13 * @function : 
14 * @author   :jy
15 * @company  :万里网
16 * @date     :2011-7-31
17 */
18public class LogsDAOImpl implementsLogsDAO {
19    privatestatic SqlSession session =null;
20    privatestatic LogsDAO mapper =null;
21      
22    static{
23        String resoure ="com/ibatisConfiguration.xml";
24        Reader reader =null;
25        try{
26            reader = Resources.getResourceAsReader(resoure);
27        }catch (IOException e) {
28            e.printStackTrace();
29        }
30          
31        SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
32        session = sqlSessionFactory.openSession();
33        mapper = session.getMapper(LogsDAO.class);
34          
35        try{
36            reader.close();
37        }catch (IOException e) {
38            e.printStackTrace();
39        }
40    }
41      
42    /* (non-Javadoc)
43     * @see com.LogsDAO#addLog(com.Logs)
44     */
45    @Override
46    public void addLog(Logs log) {
47        mapper.addLog(log);
48          
49        session.commit();
50    }
51  
52    /* (non-Javadoc)
53     * @see com.LogsDAO#deleteLogById(int)
54     */
55    @Override
56    public void deleteLogById(int id) {
57        mapper.deleteLogById(id);
58          
59        session.commit();
60    }
61  
62    /* (non-Javadoc)
63     * @see com.LogsDAO#updateStudentById(com.Logs)
64     */
65    @Override
66    public void updateStudentById(Logs log) {
67  
68  
69    }
70  
71    /* (non-Javadoc)
72     * @see com.LogsDAO#queryAllLogs()
73     */
74    @Override
75    public List<Logs> queryAllLogs() {
76        List<Logs> logs = mapper.queryAllLogs();
77          
78        return logs;
79    }
80  
81    /* (non-Javadoc)
82     * @see com.LogsDAO#queryStudentById(int)
83     */
84    @Override
85    public Logs queryStudentById(int id) {
86        Logs logs = mapper.queryStudentById(id);
87          
88        return logs;
89    }
90  
91    /* (non-Javadoc)
92     * @see com.LogsDAO#queryLogsByAdminId(java.lang.String)
93     */
94    @Override
95    publicList<Logs> queryLogsByAdminId(String admin_id) {
96        returnmapper.queryLogsByAdminId(admin_id);
97    }
98  
99}

 

五、测试

查看源码
打印?
01package test;
02  
03import java.io.IOException;
04  
05import com.Logs;
06import com.LogsDAOImpl;
07  
08/**
09 * @function : 
10 * @author   :jy
11 * @company  :万里网
12 * @date     :2011-7-31
13 */
14public class Test {
15  
16    /**
17     * @param args
18     * @throws IOException 
19     */
20    publicstatic void main(String[] args) throws IOException {
21        // TODO Auto-generated method stub
22        LogsDAOImpl logs =new LogsDAOImpl();
23          
24//      System.out.println(logs.queryAllLogs());
25          
26//      Logs log = logs.queryStudentById(2);
27          
28//      System.out.println(log);
29          
30          
31        //addlog
32        Logs log =new Logs();
33          
34        log.setAdmin_id(1);
35          
36        log.setLog_id(10);
37          
38        log.setLogin_time(newjava.util.Date());
39          
40        logs.addLog(log);
41          
42        //deleteLog
43        logs.deleteLogById(5);
44          
45        System.out.println(logs.queryLogsByAdminId("%1%"));
46    }
47  
48}