springmvc项目,增加jdbc支持

项目增加jdbc支持,访问,并操作数据


以后再写,先写一篇bug博客.


在项目中,增加jdbc的支持。

数据源,用的是  阿里 数据源。配置如下:

至于,有关数据源选择,请参考我转载的其他几篇文章:

http://blog.csdn.net/u012246342/article/details/52231451

http://blog.csdn.net/u012246342/article/details/52231277

<!-- 配置数据源 -->
	<!-- 阿里巴巴数据源,不用配置数据库驱动类,会根据请求的url找到相应的驱动类 -->
	<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="url" value="${jdbc_url}" />
		<property name="username" value="${jdbc_username}" />
		<property name="password" value="${jdbc_password}" />

		<!-- 初始化连接大小 -->
		<property name="initialSize" value="0" />
		<!-- 连接池最大使用连接数量 -->
		<property name="maxActive" value="20" />
		<!-- 连接池最大空闲 -->
		<property name="maxIdle" value="20" />
		<!-- 连接池最小空闲 -->
		<property name="minIdle" value="0" />
		<!-- 获取连接最大等待时间 -->
		<property name="maxWait" value="60000" />
		<!-- <property name="poolPreparedStatements" value="true" /> <property 
			name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->
		<property name="validationQuery" value="${validationQuery}" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />
		<property name="testWhileIdle" value="true" />
		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />
		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="25200000" />
		<!-- 打开removeAbandoned功能 -->
		<property name="removeAbandoned" value="true" />
		<!-- 1800秒,也就是30分钟 -->
		<property name="removeAbandonedTimeout" value="1800" />
		<!-- 关闭abanded连接时输出错误日志 -->
		<property name="logAbandoned" value="true" />
		<!-- 监控数据库 -->
		<!-- <property name="filters" value="stat" /> -->
		<property name="filters" value="mergeStat" />
	</bean>
	

properties的配置就不写了,基本就那些东西。

下面是JDBC的配置。很简单

<!-- 登录连接数据库 -->
	<bean id="JDBCdataSourceTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
	

使用jdbc 的代码如下:

 @Resource(name = "JDBCdataSourceTemplate")
    private JdbcTemplate masterTemplate;

     protected JdbcTemplate getMasterTemplate() {
        return masterTemplate;
    }

public SystemUser selectUserByEmail(String email) {
		String sql = "select * from system_user where sys_user_email = ?";
		Object[] args = {email};
//		List<SystemUser> user = getMasterTemplate().query(sql,args, ROW_MAPPER);
//
//		if(user == null||user.size() == 0){
//			return null;
//		}else{
//			return user.get(0);
//		}
		
		SystemUser user = getMasterTemplate().query(sql, args, RESULT_SET);
		return user;
	}
	
	
	
	
	
	private final ResultSetExtractor<SystemUser> RESULT_SET = new ResultSetExtractor<SystemUser>() {

		@Override
		public SystemUser extractData(ResultSet rs) throws SQLException,DataAccessException {
			if(rs.next()){//rs.next()
				String id = rs.getString("sys_user_id");
				String name = rs.getString("sys_user_name");
				String password = rs.getString("sys_user_password");
				String email = rs.getString("sys_user_email");
				String status = rs.getString("sys_user_status");
				String type = rs.getString("sys_user_type");
				Date createDate = rs.getDate("sys_user_createdate");
				return new SystemUser( id, name, password, email,status,type,createDate);
			}else{
				return null;
			}
		}
	};
	
	@SuppressWarnings("unused")
	private final RowMapper<SystemUser> ROW_MAPPER = new RowMapper<SystemUser>() {

		@Override
		public SystemUser mapRow(ResultSet rs, int rowNum) throws SQLException {
			String id = rs.getString("sys_user_id");
			String name = rs.getString("sys_user_name");
			String password = rs.getString("sys_user_password");
			String email = rs.getString("sys_user_email");
			String status = rs.getString("sys_user_status");
			String type = rs.getString("sys_user_type");
			Date createDate = rs.getDate("sys_user_createdate");
			return new SystemUser( id, name, password, email,status,type,createDate);
		}
	};

至于  query()方法,可以看API,里面有太多太多了。

springmvc项目,增加jdbc支持


上一篇:Photoshop制作枫叶飘落的动画风景


下一篇:缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别