Java数据库连接-集成第三方ORM框架-iBatis(四)

2014-11-24 02:08:33 · 作者: · 浏览: 2
= null;
if (map.containsKey("JDBC.Driver")) {
basicDataSource = new BasicDataSource();
String driver = (String) map.get("JDBC.Driver");
String url = (String) map.get("JDBC.ConnectionURL");
String username = (String) map.get("JDBC.Username");
String password = (String) map.get("JDBC.Password");
String validationQuery = (String) map.get("Pool.ValidationQuery");
String maxActive = (String) map.get("Pool.MaximumActiveConnections");
String maxIdle = (String) map.get("Pool.MaximumIdleConnections");
String maxWait = (String) map.get("Pool.MaximumWait");

basicDataSource.setUrl(url);
basicDataSource.setDriverClassName(driver);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
...
}


JNDI
/* REQUIRED PROPERTIES
* -------------------
* DataSource
* or
* DBJndiContext
* or
* DBFullJndiContext
* or
* DBInitialContext and DBLookup
*/
相关类 com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory
/**
* DataSourceFactory implementation for JNDI
*/
public class JndiDataSourceFactory implements DataSourceFactory {
public void initialize(Map properties) {
...
if (properties.containsKey("DataSource")) {
dataSource = (DataSource) initCtx.lookup((String) properties.get("DataSource"));
} else if (properties.containsKey("DBJndiContext")) { // LEGACY --Backward compatibility
dataSource = (DataSource) initCtx.lookup((String) properties.get("DBJndiContext"));
} else if (properties.containsKey("DBFullJndiContext")) { // LEGACY --Backward compatibility
dataSource = (DataSource) initCtx.lookup((String) properties.get("DBFullJndiContext"));
} else if (properties.containsKey("DBInitialContext")
&& properties.containsKey("DBLookup")) { // LEGACY --Backward compatibility
Context ctx = (Context) initCtx.lookup((String) properties.get("DBInitialContext"));
dataSource = (DataSource) ctx.lookup((String) properties.get("DBLookup"));
}
...
}
}

sql-map-config.xml数据库事务片段:






java:comp/env/jdbc/mydb是通过JNDI方式获取数据源
简述:建立一个context.xml文件放置在WebRoot/META-INF目录下,详见 7.1 配置JNDI数据源.

sql-map-config.xml
< xml version="1.0" encoding="UTF-8" >
http://ibatis.apache.org/dtd/sql-map-config-2.dtd" >






















9.2 SQL映射文件
该SQL映射文件用来配置数据库表字段与POJO对象的映射
sql-map-user.xml用于将数据库中User表字段映射到com.iteye.jarg.bean.User属性
说明:
配置别名,将一长串,用一个别名代替
用来设置生成的结果集中每条记录的类型及包含的数据
这些标签必不可少的是id属性,供数据库操作函数调用对应的SQL语句,也是区别于其他的标签SQL内容的依据.该id属性必须是在全局配置文件(e.g. sql-map-config.xml)中定义的所有SQL映射文件(e.g. sql-map-user.xml)中独一无二的,即:所有SQL映射文件中的所有id属性不可出现重复情况.
另外,常用的属性有
设置传入参数类型 parameterClass,parameterMap
设置传出参数类型 resultClass,resultMap
设置调整缓存类型 cacheModel
parameterClass,resultClass用于指定已经存在的数据对象类型
parameterMap,resultMap用于指定自定义的数据对象类型
如:







标签
用于设置数据库预编译SQL语句,缓存SQL语句的缓存模式
A cacheModel is used to describe a cache for use with a query mapped statement. Each query mapped statement can use a different cacheModel, or the same one.
如:









sql-map-us