mybatis 入门例子

单纯mybatis例子

环境:myeclipse+tomcat+mysql

需要包:mysql-connector-java-5.0.8-bin.jar,mybatis-3.1.1.jar

主要类目录结构:


需要建立类:

User.java:bean类,用于存储数据,作为持久性数据结构

UserMapper.java:接口类,注射方式,从数据库读取数据到相应接口

MyBatisUtil.java:工具类,主要通过session工程获取session

TestMybatis:测试类,通过调用配置方式,获取数据库数据

需要建立xml配置文件:

mybatis-config.xml:总配置mybatis文件

User.xml:bean类对应xml文件,书写各种sql语句来获取数据


各文件内容:

1 mybatis-config.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>
	<!-- 定义的类的别名,同样作为引用,相当于一个持久化数据bean类 -->
	<typeAliases>
		<typeAlias alias="User" type="com.taikang.mybatis.User"/>
	</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://10.136.16.161:3306/test"/>
				<property name="username" value="root"/>
				<property name="password" value="admin"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- bean数据实体类对应需要操作的xml配置文件 -->
	<mappers>
		<mapper resource="resources/mappers/User.xml"/>
	</mappers>
</configuration>

若服务器中有数据源配置,environments部分可以为:

<environments default="development">
	<environment id="development">
		<transactionManager type="JDBC"/>
		<dataSource type="JNDI">
		    <property name="initial_context" value="java:/comp/env"/>
			<property name="data_source" value="jdbc/InsureDB"/>
		</dataSource>
	</environment>
</environments>
2 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="com.taikang.mybatis.UserMapper">
	<!-- namespace必须是接口的路径, username 为User对象中 -->
	<select id="getUser" parameterType="String" resultType="User">
		select * from table1 where username = #{username}
	</select>
</mapper>

3 User的Bean类部分:
public class User
{
	private int id;
	private String username;
	private int age;
	private String addr;
	
	public User(){
		super();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
。。。
}
4 UserMapper.java类:
//mybatis使用到的接口
public interface UserMapper {
//	public void insertUser(User user);
	public User getUser(String name);
	public String getAddr(String name);
}
5 MyBatisUtil:工具类
import java.io.IOException;
import java.io.Reader;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.io.Resources;

public class MyBatisUtil 
{
	private static Log logger = LogFactory.getLog(MyBatisUtil.class);
	
	private static SqlSessionFactory factory;  
	//用于单个提交的session
	private static SqlSession sqlSession = null;
	/*
     *  读取MyBatis配置文件,创建SqlSessionFactory  
     */
    public static SqlSessionFactory getFactory() throws Exception{
    	String resource = "mybatis-config.xml";  
    	Reader reader = null;
        try {  
        	//FileInputStream is = new FileInputStream(path);
        	//MyBatisTemplate temp = new MyBatisTemplate();
        	//String cl = temp.getPath();
            reader = Resources.getResourceAsReader(resource);  
            if(factory == null)
            	factory = new SqlSessionFactoryBuilder().build(reader);
            return factory;
        } catch (Exception e) {  
            logger.error("初始化MyBatis环境出错:" + e.getMessage());
            throw e;
        }finally{  
        	try {  
        		if(reader != null)
        			reader.close();  
           	} catch (IOException e) {
           		logger.error("关闭MyBatis reader 出错:" + e.getMessage());
           	}  
        } 
    }  
    /** 
     * 获取SqlSession 
     * @return 
	 * @throws Exception 
     */  
    public static SqlSession getSqlSession() throws Exception{  
        if(sqlSession == null){  
        	//getFactory().getConfiguration().addMapper(FunctionDAO.class);
            sqlSession = getFactory().openSession();  
        }  
        //clearCache();
        return sqlSession;  
    }  
}
6 TestMybatis:应用类
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

public class TestMybatis {
//	static SqlSessionFactory sqlSessionFactory = null;
//	static{
//		sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
//	}
	public static void getUser()
	{
		SqlSession sqlSession = null;
//		SqlSession sqlSession = sqlSessionFactory.openSession();
		try
		{
			sqlSession = MyBatisUtil.getSqlSession();
			UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
			User user = userMapper.getUser("feng");
			System.out.println("info:" + user.getUsername() + " " + user.getAge() + " " + user.getAddr());
		}catch(Exception e)
		{
			e.printStackTrace();
		}finally
		{
			sqlSession.close();
		}
	}
}
7 写个main函数:MainTest
public class MainTest
{
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("start mybatis ...");
		TestMybatis.getUser();
		System.out.println("end mybatis ...");
	}
}
8 数据库设计:



9 注意:
mybatis-config.xml文件和User.xml文件放在src的目录下边,在编译的时候将文件拷贝到web/web-inf/classes文件夹下,程序读取相对文件位置,
若放在文件目录其他位置,可能因找不到文件而报错




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值