首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

IBatis3.0 诠注配置方式的应用(JPA+IBatis3.0应用注解版)

2012-10-20 
IBatis3.0 注解配置方式的应用(JPA+IBatis3.0应用注解版)???????? 其实使用IBatis3.0注解,相等于把IBatis

IBatis3.0 注解配置方式的应用(JPA+IBatis3.0应用注解版)

???????? 其实使用IBatis3.0注解,相等于把IBatis中的全局xml配置信息编程式开发,非全局xml配置针对实体的映射文件采用。注解开发,好了,言归正传吧。\(^o^)/~

IbatisSessionFactory 的代码重点如下:

注意看有颜色部分代码:

?

package com.vnvtrip.search.ibatis.utils;import java.sql.Connection;import java.util.Properties;import java.util.logging.Logger;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;import org.apache.ibatis.mapping.Environment;import org.apache.ibatis.session.Configuration;import org.apache.ibatis.session.ExecutorType;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.ibatis.session.TransactionIsolationLevel;import org.apache.ibatis.transaction.TransactionFactory;import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;import com.vnvtrip.search.ibatis.blog.model.BlogMapper;/** *  *  * 创建类似Hibernate的HibernateSessionFactoryUtils的类 * @author longgangbai *  */@SuppressWarnings("serial")public class IbatisSessionFactory implements SqlSessionFactory {        public static final Logger LOG = Logger.getLogger(IbatisSessionFactory.class.getName());    /**     * 针对特殊的应用     * 读取config.properties文件,存放了数据库连接参数等信息      */    private static final Properties props = new Properties() {{    try {load(IbatisSessionFactory.class.getResourceAsStream("jdbc.properties"));    } catch (Exception e) {e.printStackTrace();    }}    };        /** 根据参数得到某个具体的iBatis数据源工厂实例 */    public static SqlSessionFactory getInstance() {if (sqlSessionFactory == null) {    try {initSqlSessionFactory();    } catch (Exception e) {e.printStackTrace();    }}return sqlSessionFactory;    }   /**    * 采用注解配置的方式    * @throws Exception    */    private static void initSqlSessionFactory() throws Exception {//获取数据源    DataSource datasource = BasicDataSourceFactory.createDataSource(props);    //创建事务工厂TransactionFactory transFactory = new JdbcTransactionFactory();//获取上下文环境Environment environment = new Environment("development",transFactory, datasource);//创建配置对象Configuration config = new Configuration(environment);//添加映射的类config.addMapper(BlogMapper.class);//构建的会话工厂SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();sqlSessionFactory = builder.build(config);    }    // 真正“做事”的实例    private static SqlSessionFactory sqlSessionFactory = null;    public Configuration getConfiguration() {return sqlSessionFactory.getConfiguration();    }    public SqlSession openSession() {return sqlSessionFactory.openSession();    }    public SqlSession openSession(boolean arg0) {return sqlSessionFactory.openSession(arg0);    }    public SqlSession openSession(Connection arg0) {return sqlSessionFactory.openSession(arg0);    }    public SqlSession openSession(ExecutorType arg0) {return sqlSessionFactory.openSession(arg0);    }    public SqlSession openSession(ExecutorType arg0, boolean arg1) {return sqlSessionFactory.openSession(arg0, arg1);    }    public SqlSession openSession(ExecutorType arg0, Connection arg1) {return sqlSessionFactory.openSession(arg0, arg1);    }    @Override    public SqlSession openSession(TransactionIsolationLevel arg0) {return sqlSessionFactory.openSession(arg0);    }    @Override    public SqlSession openSession(ExecutorType arg0,    TransactionIsolationLevel arg1) {return sqlSessionFactory.openSession(arg0, arg1);    }}

?

?jdbc.properties内容如下:

?

driverClassName=com.mysql.jdbc.Driverurl=jdbc\:mysql\://localhost\:3306/searchusername=rootpassword=123456

?

?

Blog对应的映射文件Mapper文件:

针对insert,update,delete,select很简单忽略。

?

package com.vnvtrip.search.ibatis.blog.model;

import org.apache.ibatis.annotations.Select;
/**
?*
?* @author longgangbai
?*
?*/
public interface BlogMapper {
??? @Select("select * from blog where blogid=#{blogid}")
??? Blog findById(int id);
}

?

BlogDAO中的代码如下:

??? @Override
??? public Blog findById(Integer id) {
? try {
????? BlogMapper mapper=getSqlSession().getMapper(BlogMapper.class);
????? return mapper.findById(id);
?} finally{
???? getSqlSession().close();
?}
??? }

?

?

?

?

1 楼 makemyownlife 2010-08-28   最近也在研究 ,ibatis3,不知道怎么细化ibatis3的操作,在ibatis2 中有dao框架,在ibatis3中呢?

热点排行