Mybatis学习笔记

可以通过http://mybatis.github.io/  下载最新版本的mybatis,mybatis的项目托管在github的服务器上。

个人理解的MyBatis流程是,通过映射调用相应sqlmapper.xml里的SQL语句,返回相应的数据,或者执行相应的操作。sqlmapper.xml里的id要跟接口方法名保持一致。其他的后台处理交给框架来实现就可以。

通过MyEclipse新建一个java项目,建立如下的目录结构(目录结构有点随意.....因为测试,没有完全按照标准来。)

数据库使用的是Oracle,实现了对表中数据的插入以及查询。


config文件夹下存放的是User实体类

dao 文件夹下存放的是映射接口UserMapper

Mybatis文件夹下存放的是配置文件。

引入下载的jar包,以及连接数据库的jdbc jar 包,如果安装了oracle数据库,可以直接在oracle安装目录的jdbc文件夹下lib目录下找到连库的jar包。

User.java

package com.batis.config;

public class User {
	  public User() {  
	    }  
	public String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String username;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	


}
UserMapper.java

package com.batis.dao;
import com.batis.config.*;;

public interface UserMapper {
	public User findById(String Id);  
	public void insertById(User us);
}

MyBitsTest.java

package com.batis.test;  
  
import java.io.IOException;  
 
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 com.batis.dao.UserMapper;  
import com.batis.config.User;  
  
/** 
 * myBatis数据库连接测试 
 *  
 * @author db2admin 
 *  
 */  
public class MybatisTest {  
    /** 
     * 获得MyBatis SqlSessionFactory   
     * SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。 
     * @return 
     */  
    private static SqlSessionFactory getSessionFactory() {  
        SqlSessionFactory sessionFactory = null;  
        String resource = "configuration.xml";  
        try {  
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources  
                    .getResourceAsReader(resource));  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        return sessionFactory;  
    }  
  
    public static void main(String[] args) {  
        SqlSession sqlSession = getSessionFactory().openSession();  
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);  
        User user = userMapper.findById("SEX"); 
        User us=new User();
        us.setName("三");
        us.setUsername("sss");
        userMapper.insertById(us);
        sqlSession.commit();
        sqlSession.close();
        System.out.println(user.getName()); 
        System.out.println(user.getUsername());
    }  
  
}  

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">  
    <!--这块等于dao接口的实现  namespace必须和接口的类路径一样-->  
<mapper namespace="com.batis.dao.UserMapper">  
    <!-- findById必须和接口中的方法名一样  返回一个User  就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->  
    <select id="findById" parameterType="HashMap" resultType="User">  
        select  
        FIELD as username,FIELDNAME as name from EACODE where FIELD=#{id}  
    </select>  
    <insert id="insertById" parameterType="com.batis.config.User">
    insert into TEST_USER(NAME,USERNAME) values(#{name},#{username})
    </insert>
</mapper> 

namespace必须指定实现dao的接口   id跟接口中的方法名一样。

configuration.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>
<typeAliases>
<typeAlias type="com.batis.config.User" alias="User"></typeAlias>

</typeAliases>
<environments default="development">
<environment id="development">
	<transactionManager type="jdbc"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property>
<property name="username" value="g4"></property>
<property name="password" value="g4"></property>
</dataSource>
</environment>
</environments>
  <mappers>  
        <!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 -->  
        <mapper resource="Mybatis/userMapper.xml" />  
    </mappers>  
</configuration>


需要注意的几点:

<typeAliases>
<typeAlias type="com.batis.config.User" alias="User"></typeAlias>
</typeAliases>
typeAliases标签的作用,类似于声明了对象,以后可以在配置中或者在sqlmap中直接使用User来代替User类

environments default="development">
<environment id="development">
	<transactionManager type="jdbc"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property>
<property name="username" value="g4"></property>
<property name="password" value="g4"></property>
</dataSource>
</environment>
</environments>

设置环境为development (开发模式)transactionManager  类型为jdbc dataSource 类型为 POOLED(连接池)  Mybatis内置了三种数据源类型 

UNPOOLED:每次请求得时候建立连接,比较慢

POOLED:建立连接池的方式

JNDI:个数据源的实现是为了使用如 Spring 或应用服务器这类的容器, 容器可以集 中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。

<mappers>  
        <!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 -->  
        <mapper resource="Mybatis/userMapper.xml" />  
    </mappers>  

用来配置映射文件的路径。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 伴随着人才教学的关注度越来越高,对于人才的培养也是当今社会发展的最为重要的问题之一。为了进一步的进行人才的培养关工作,许多的学校或者是教育的机构逐步的开展了网络信息化的教学和和管理工作,通过信息化的手段和技术实现网络信息化的教育及管理模式,通过网络信息化的手段实现在线答题在线考试和学生信息在线的管理等操作。这样更加的快捷解决了人才培养之中的问题,也在进一步的促进了网络信息化教学方式的快速的发展工作。相较于之前的人才教育和培养工作之中,存在这许多的问题和局限性。在学生信息管理方面通过线下管理的形式进行学生信息的管理工作,在此过程之中存在着一定的局限性和低效性,往往一些突发的问题导致其中工作出现错误。导致相关的教育工作受到了一定的阻碍。在学生信息和学生成绩的管理方面,往常的教育模式之下都是采用的是人工线下的进行管理和整理工作,在这一过程之中存在这一定的不安全和低效性,面对与学生基数的越来越大,学生的信息管理也在面领着巨大的挑战,管理人员面领着巨大的学生信息的信息量,运用之前的信息管理方式往往会在统计和登记上出现错误的情况的产生,为后续的管理工作造成了一定的困难。然而通过信息化的管理方式进行对学生信息的管理不仅可以避免这些错误情况的产生还可以进一步的简化学生信息管理工作的流程,节约了大量的人力和物力的之处。在线答题系统的实现不仅给学生的信息管理工作和在线考试带来了方便也进一步的促进了教育事业信息化的发展,从而实现高效化的教学工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值