- SqlRunner exec = new SqlRunner(connection);
- Map
row = exec.selectOne("SELECT * FROM PRODUCT WHERE PRODUCTID = ?", "FI-SW-01"); - connection.close();
- assertEquals("FI-SW-01", row.get("PRODUCTID"));





- public TypeHandlerRegistry() {
- //构造函数里注册系统内置的类型处理器
- //以下是为多个类型注册到同一个handler
- register(Boolean.class, new BooleanTypeHandler());
- register(boolean.class, new BooleanTypeHandler());
- register(JdbcType.BOOLEAN, new BooleanTypeHandler());
- register(JdbcType.BIT, new BooleanTypeHandler());
-
- register(Byte.class, new ByteTypeHandler());
- register(byte.class, new ByteTypeHandler());
- register(JdbcType.TINYINT, new ByteTypeHandler());
-
- register(Short.class, new ShortTypeHandler());
- register(short.class, new ShortTypeHandler());
- register(JdbcType.SMALLINT, new ShortTypeHandler());
-
- register(Integer.class, new IntegerTypeHandler());
- register(int.class, new IntegerTypeHandler());
- register(JdbcType.INTEGER, new IntegerTypeHandler());
-
- register(Long.class, new LongTypeHandler());
- register(long.class, new LongTypeHandler());
-
- register(Float.class, new FloatTypeHandler());
- register(float.class, new FloatTypeHandler());
- register(JdbcType.FLOAT, new FloatTypeHandler());
-
- register(Double.class, new DoubleTypeHandler());
- register(double.class, new DoubleTypeHandler());
- register(JdbcType.DOUBLE, new DoubleTypeHandler());
-
- //以下是为同一个类型的多种变种注册到多个不同的handler
- register(String.class, new StringTypeHandler());
- register(String.class, JdbcType.CHAR, new StringTypeHandler());
- register(String.class, JdbcType.CLOB, new ClobTypeHandler());
- register(String.class, JdbcType.VARCHAR, new StringTypeHandler());
- register(String.class, JdbcType.LONGVARCHAR, new ClobTypeHandler());
- register(String.class, JdbcType.NVARCHAR, new NStringTypeHandler());
- register(String.class, JdbcType.NCHAR, new NStringTypeHandler());
- register(String.class, JdbcType.NCLOB, new NClobTypeHandler());
- register(JdbcType.CHAR, new StringTypeHandler());
- register(JdbcType.VARCHAR, new StringTypeHandler());
- register(JdbcType.CLOB, new ClobTypeHandler());
- register(JdbcType.LONGVARCHAR, new ClobTypeHandler());
- register(JdbcType.NVARCHAR, new NStringTypeHandler());
- register(JdbcType.NCHAR, new NStringTypeHandler());
- register(JdbcType.NCLOB, new NClobTypeHandler());
-
- register(Object.class, JdbcType.ARRAY, new ArrayTypeHandler());
- register(JdbcType.ARRAY, new ArrayTypeHandler());
-
- register(BigInteger.class, new BigIntegerTypeHandler());
- register(JdbcType.BIGINT, new LongTypeHandler());
-
- register(BigDecimal.class, new BigDecimalTypeHandler());
- register(JdbcType.REAL, new BigDecimalTypeHandler());
- register(JdbcType.DECIMAL, new BigDecimalTypeHandler());
- register(JdbcType.NUMERIC, new BigDecimalTypeHandler());
-
- register(Byte[].class, new ByteObjectArrayTypeHandler());
- register(Byte[].class, JdbcType.BLOB, new BlobByteObjectArrayTypeHandler());
- register(Byte[].class, JdbcType.LONGVARBINARY, new BlobByteObjectArrayTypeHandler());
- register(byte[].class, new ByteArrayTypeHandler());
- register(byte[].class, JdbcType.BLOB, new BlobTypeHandler());
- register(byte[].class, JdbcType.LONGVARBINARY, new BlobTypeHandler());
- register(JdbcType.LONGVARBINARY, new BlobTypeHandler());
- register(JdbcType.BLOB, new BlobTypeHandler());
-
- register(Object.class, UNKNOWN_TYPE_HANDLER);
- register(Object.class, JdbcType.OTHER, UNKNOWN_TYPE_HANDLER);
- register(JdbcType.OTHER, UNKNOWN_TYPE_HANDLER);
-
- register(Date.class, new DateTypeHandler());
- register(Date.class, JdbcType.DATE, new DateOnlyTypeHandler());
- register(Date.class, JdbcType.TIME, new TimeOnlyTypeHandler());
- register(JdbcType.TIMESTAMP, new DateTypeHandler());
- register(JdbcType.DATE, new DateOnlyTypeHandler());
- register(JdbcType.TIME, new TimeOnlyTypeHandler());
-
- register(java.sql.Date.class, new SqlDateTypeHandler());
- register(java.sql.Time.class, new SqlTimeTypeHandler());
- register(java.sql.Timestamp.class, new SqlTimestampTypeHandler());
-
- // issue #273
- register(Character.class, new CharacterTypeHandler());
- register(char.class, new CharacterTypeHandler());
- }

回到流程中






- /*
- 执行DQL语句
- */
-
- import java.sql.*;
- import java.util.*;
-
- public class JDBCTest05 {
- public static void main(String[] args) {
- // 1、注册驱动
- // 2、建立连接
- // 3、获取数据库操作对象
- // 4、执行sql语句
- // 5、获取查询结果集
- // 6、释放资源
- Connection conn = null;
- Statement stmt = null;
- ResultSet rs = null;
-
- try{
- ResourceBundle rb = ResourceBundle.getBundle("jdbc");
- String driver = rb.getString("driver");
- String url = rb.getString("url");
- String user = rb.getString("user");
- String password = rb.getString("password");
-
- Class.forName(driver);
-
- conn = DriverManager.getConnection(url,user,password);
-
- stmt = conn.createStatement();
-
- rs = stmt.executeQuery("select empno,ename,sal from emp");
-
- while(rs.next()){
- /*
- String empno = rs.getString(1);
- String ename = rs.getString(2);
- String sal = rs.getString(3);
- System.out.println(empno + "," + ename + "," + sal);
- */
-
- /*
- // 按下标取出,程序不健壮
- String empno = rs.getString("empno");
- String ename = rs.getString("ename");
- String sal = rs.getString("sal");
- System.out.println(empno + "," + ename + "," + sal);
- */
-
- /*
- // 以指定的格式取出
- int empno = rs.getInt(1);
- String ename = rs.getString(2);
- double sal = rs.getDouble(3);
- System.out.println(empno + "," + ename + "," + (sal + 100));
- */
-
- int empno = rs.getInt("empno");
- String ename = rs.getString("ename");
- double sal = rs.getDouble("sal");
- System.out.println(empno + "," + ename + "," + (sal + 200));
- }
-
- } catch(Exception e){
- e.printStackTrace();
- }finally{
- if(rs != null){
- try{
- rs.close();
- } catch (Exception e){
- e.printStackTrace();
- }
- }
- if(stmt != null){
- try{
- stmt.close();
- } catch (Exception e){
- e.printStackTrace();
- }
- }
- if(conn != null){
- try{
- conn.close();
- } catch (Exception e){
- e.printStackTrace();
- }
- }
- }
- }
- }