随笔分类 - JDBC

摘要: package cn.ng.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DbConnect { private final String url = "jdbc:oracle:thin:@服务器IP地址:1521:数据库名"; private final String className = "oracle.jdbc.driver.OracleD阅读全文
posted @ 2012-03-22 10:12 残星 阅读(238) | 评论 (0) 编辑
摘要: 一、JdbcTemplate查询带有参数,和行映射方法:public Object queryForObject(String sql, Object[] args, RowMapper rowMapper),使用自定义的UserRowMapper完成映射。一个RowMapper的常用实现BeanPropertyRowMapper,该实现可将结果集转换成一个Java Bean(字段名与Java Bean属性名不符合规范,可用别名处理)。public List query(String sql, Object[] args, RowMapper rowMapper)返回多个结果。public i阅读全文
posted @ 2011-12-18 11:43 残星 阅读(14290) | 评论 (1) 编辑
摘要: 使用反射public class ReflectTest {public static void main(String[] args) throws Exception {Class clazz=User.class;Object obj=create(clazz);System.out.println(obj);invoke1(obj,"showName");System.out.println("------------------");field(clazz);}static Object create(Class clazz) throws E阅读全文
posted @ 2011-12-18 11:09 残星 阅读(142) | 评论 (0) 编辑
摘要: 1.daoConfig.propertiesuserDaoClass=cn.itcast.jdbc.dao.impl.UserDaoJdbcImpl#userDaoClass=cn.itcast.jdbc.dao.impl.UserDaoHibernateImpl-----------------------------------------------------------------------------------------------------------public final class JdbcUtils {private static DataSource myDat阅读全文
posted @ 2011-12-17 22:14 残星 阅读(2414) | 评论 (0) 编辑
摘要: 优化JDBC代码(模板模式)优化查询操作,区分开变化和不变的部分:sql和ResultSet的处理是变化部分,创建和释放资源部分是不变部分。l提取超类,将不变部分放入超类,变化部分留给子类实现。l超类的主要代码:public Object find(String sql, Object[] args) { … rs = ps.executeQuery(); if (rs.next()) return rowMapper(rs); …}protected abstract Object rowMapper(ResultSet rs);public abstract class AbstractD阅读全文
posted @ 2011-12-17 15:47 残星 阅读(243) | 评论 (0) 编辑
摘要: 使用DBCP必须用的三个包:commons-dbcp-1.2.1.jar, commons-pool-1.2.jar, commons-collections-3.1.jar。Java API: BasicDataSourceFactory.createDataSource(properties);----------------------------------------------------------------------------------------dbcpconfig.properties#连接设置driverClassName=com.mysql.jdbc.Drive阅读全文
posted @ 2011-12-17 00:05 残星 阅读(309) | 评论 (0) 编辑
摘要: DataSource用来取代DriverManager来获取Connection;通过DataSource获得Connection速度很快;通过DataSource获得的Connection都是已经被包裹过的(不是驱动原来的连接),他的close方法已经被修改。一般DataSource内部会用一个连接池来缓存Connection,这样可以大幅度提高数据库的访问速度;连接池可以理解成一个能够存放Connection的Collection;我们的程序只和DataSource打交道,不会直接访问连接池;使用装饰模式的Connection(核心代码)class MyConnection impleme阅读全文
posted @ 2011-12-16 16:23 残星 阅读(1947) | 评论 (0) 编辑
摘要: 连接数据的步骤注册驱动 (只做一次)建立连接(Connection)创建执行SQL的语句(Statement)执行语句处理执行结果(ResultSet)释放资源一、工具类Class.forName(“com.mysql.jdbc.Driver”);推荐这种方式,不会对具体的驱动类产生依赖。DriverManager.registerDriver(com.mysql.jdbc.Driver);会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。System.setProperty(“jdbc.drivers”, “driver1:driver2”);虽然不会对具体的阅读全文
posted @ 2011-12-09 13:44 残星 阅读(459) | 评论 (0) 编辑