JDBC

jdbc:

         JavaDataBase Connectivity,java操作数据库.jdbcoracle公司指定的一套规范(一套接口)

         驱动:jdbc的实现类.由数据库厂商提供.

         jdbc作用:

                  连接数据库

                  发送sql语句

                  处理结果

        

jdbc使用步骤:

                  1.导入jar(驱动) mysql-connector-java-5.1.39

                  2.注册驱动

                          Class.forName("com.mysql.jdbc.Driver");

                  3.获取连接

                          DriverManager.getConnection("jdbc:mysql://loacalhost:3306/xxx","root","xxx");

                  4.编写sql

                  5.创建语句执行者

                          PreparedStatementst=conn.prepareStatement(sql);

                  6.设置参数

                          st.setXxx(int第几个问号,Object 实参);

                  7.执行sql

                          ResultSetrs=st.executeQuery();返回值:结果集

                          inti=st.executeUpdate();返回值:影响的行数

                  8.处理结果:

                          if(rs.next()){

                                   rs.getXxx(int|String)

                          }

                  9.释放资源

        

使用junit单元测试

                  1.方法是public void xxx(){}

                  2.在方法上添加 @Test

                  3.@Test 按下 ctrl+1(快速锁定错误)

                  4.在方法上右键 run as  -->junit 就可以执行方法了.

 

连接池

         使用jdbc的时候, 通过连接池来优化curd操作. 就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法获取,不用的时候归还连接即可

所有的连接池必须实现一个接口 javax.sql.DataSource接口

获取连接:getConnnection();

归还连接:conn.close();

 

装饰者模式:

         使用步骤:

                  1.装饰者和被装饰者实现同一个接口或者继承同一个类

                  2.装饰者中要有被装饰者的引用

                  3.对需要增强的方法进行加强

 

常用的连接池:

         C3P0:

                  使用步骤:

                          1.导入jarc3p0-0.9.1.2.jar

                          2.使用api

                                   a.硬编码(不推荐)

                                   b.配置文件

                                            配置文件的名称:c3p0.properties 或者c3p0-config.xml

                                            配置文件的路径:放到src(跟目录)

编码只需要一句话

                                                     newComboPooledDataSource()//使用默认的配置

 

                  //ComboPooledDataSourceds = new ComboPooledDataSource();

                  ComboPooledDataSourceds =new ComboPooledDataSource("itcast12321");

//若查找不到命名的配置 使用默认的配置

                  Stringsql="insert into category values(?,?);";

                  PreparedStatementst=conn.prepareStatement(sql);

                  //设置参数

                  st.setString(1,"c124");

                  st.setString(2,"解药");

                  inti = st.executeUpdate();

                  System.out.println(i);

 

使用dbutils完成curd操作

         dbutils:apache组织的一个工具类,jdbc的框架,更方便我们使用

         使用步骤:

                  1.导入jarcommons-dbutils-1.4.jar

                  2.创建一个queryrunner

                          queryrunner作用:操作sql语句

                                   构造方法:

                                            newQueryRunner(Datasource ds);

                  3.编写sql

                  4.执行sql

                          query(..):执行r操作

                          update(...):执行cud操作

dbutils核心类或接口

         QueryRunner:操作sql语句(同上)

                  注意:底层帮我们创建连接,创建语句执行者 ,释放资源.

         DbUtils:释放资源,控制事务(有QueryRunner就不用这个了)

                  closeQuietly(conn):内部处理了异常

                  commitAndClose(Connectionconn):提交事务并释放连接

         ResultSetHandler:接口封装结果集

                   (了解)ArrayHandler, 将查询结果的第一条记录封装成数组,返回

                   (了解)ArrayListHandler, 将查询结果的每一条记录封装成数组,将每一个数组放入list中返回

                   ★★BeanHandler, 将查询结果的第一条记录封装成指定的bean对象,返回

                   ★★BeanListHandler,将查询结果的每一条记录封装成指定的bean对象,放入list 返回.

                   (了解)ColumnListHandler, 将查询结果的指定一列放入list中返回

                   (了解)MapHandler, 将查询结果的第一条记录封装成map,字段名作为key,值为value 返回

                   MapListHandler,将查询结果的每一条记录封装map集合,将每一个map集合放入list中返回

                   ScalarHandler,针对于聚合函数例如:count(*) 返回的是一个Long

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值