随笔分类 - 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
阅读全文
摘要:一、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
阅读全文
摘要:使用反射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
阅读全文
摘要:1.daoConfig.propertiesuserDaoClass=cn.itcast.jdbc.dao.impl.UserDaoJdbcImpl#userDaoClass=cn.itcast.jdbc.dao.impl.UserDaoHibernateImpl-----------------------------------------------------------------------------------------------------------public final class JdbcUtils {private static DataSource myDat
阅读全文
摘要:优化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
阅读全文
摘要:使用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
阅读全文
摘要:DataSource用来取代DriverManager来获取Connection;通过DataSource获得Connection速度很快;通过DataSource获得的Connection都是已经被包裹过的(不是驱动原来的连接),他的close方法已经被修改。一般DataSource内部会用一个连接池来缓存Connection,这样可以大幅度提高数据库的访问速度;连接池可以理解成一个能够存放Connection的Collection;我们的程序只和DataSource打交道,不会直接访问连接池;使用装饰模式的Connection(核心代码)class MyConnection impleme
阅读全文
摘要:连接数据的步骤注册驱动 (只做一次)建立连接(Connection)创建执行SQL的语句(Statement)执行语句处理执行结果(ResultSet)释放资源一、工具类Class.forName(“com.mysql.jdbc.Driver”);推荐这种方式,不会对具体的驱动类产生依赖。DriverManager.registerDriver(com.mysql.jdbc.Driver);会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。System.setProperty(“jdbc.drivers”, “driver1:driver2”);虽然不会对具体的
阅读全文