当前位置: 首页 > news >正文

怎样做艾条艾柱网站网站建设与制作软件

怎样做艾条艾柱网站,网站建设与制作软件,平面设计基础知识,seo做得好的企业网站目录 封装方法 引出dbutils 案例 当关闭connection后,resultset结果集就无法使用了,这就使得resultset不利于数据的管理 封装方法 我们可以将结果集先存储在一个集合中,当connection关闭后,我们可以通过访问集合来访问结果集 …

目录

封装方法

引出dbutils

案例


当关闭connection后,resultset结果集就无法使用了,这就使得resultset不利于数据的管理

封装方法

我们可以将结果集先存储在一个集合中,当connection关闭后,我们可以通过访问集合来访问结果集

public ArrayList<Actor> testSelectToArrayList() {System.out.println("使用 druid方式完成");//1. 得到连接Connection connection = null;//2. 组织一个sqlString sql = "select * from actor where id >= ?";PreparedStatement preparedStatement = null;ResultSet set = null;ArrayList<Actor> list = new ArrayList<>();//创建ArrayList对象,存放actor对象//3. 创建PreparedStatement 对象try {connection = JDBCUtilsByDruid.getConnection();System.out.println(connection.getClass());//运行类型 com.alibaba.druid.pool.DruidPooledConnectionpreparedStatement = connection.prepareStatement(sql);preparedStatement.setInt(1, 1);//给?号赋值//执行, 得到结果集set = preparedStatement.executeQuery();//遍历该结果集while (set.next()) {int id = set.getInt("id");String name = set.getString("name");//getName()String sex = set.getString("sex");//getSex()Date borndate = set.getDate("borndate");String phone = set.getString("phone");//把得到的resultset 的记录,封装到 Actor对象,放入到list集合list.add(new Actor(id, name, sex, borndate, phone));}System.out.println("list集合数据=" + list);for(Actor actor : list) {System.out.println("id=" + actor.getId() + "\t" + actor.getName());}} catch (SQLException e) {e.printStackTrace();} finally {//关闭资源JDBCUtilsByDruid.close(set, preparedStatement, connection);}//因为ArrayList 和 connection 没有任何关联,所以该集合可以复用.return  list;}

引出dbutils

是Apache组织提供的一个开源的jdbc工具库类,对jdbc进行封装,简化工作量

QueryRunner类:封装了sql的执行,是线程安全的,可以实现增删改查

ResuleSetHandler接口:该接口处理java.sql.ResultSet,将数据按要求转化为另一种格式

案例

使用DBUtils + 数据连接池(德鲁伊)方式,完成对表的actor的crud

1.返回结果为多行

public void testQueryMany() throws SQLException { //返回结果是多行的情况//1. 得到 连接 (druid)Connection connection = JDBCUtilsByDruid.getConnection();List<Actor> list =queryRunner.query(connection, sql, new BeanListHandler<>(Actor.class), 1);System.out.println("输出集合的信息");for (Actor actor : list) {System.out.print(actor);}//释放资源JDBCUtilsByDruid.close(null, null, connection);
}

        (1) query 方法就是执行sql 语句,得到resultset ---封装到 --> ArrayList 集合中
        (2) 返回集合
        (3) connection: 连接
        /4) sql : 执行的sql语句
        (5) new BeanListHandler<>(Actor.class): 在将resultset -> Actor 对象 -> 封装到 ArrayList
           底层使用反射机制 去获取Actor 类的属性,然后进行封装
        (6) 1 就是给 sql 语句中的? 赋值,可以有多个值,因为是可变参数Object... params
        (7) 底层得到的resultset ,会在query 关闭, 关闭PreparedStatment

2.返回结果为单行

public void testQuerySingle() throws SQLException {//1. 得到 连接 (druid)Connection connection = JDBCUtilsByDruid.getConnection();//2. 使用 DBUtils 类和接口 , 先引入DBUtils 相关的jar , 加入到本Project//3. 创建 QueryRunnerQueryRunner queryRunner = new QueryRunner();//4. 就可以执行相关的方法,返回单个对象String sql = "select * from actor where id = ?";// 因为我们返回的单行记录<--->单个对象 , 使用的Hander 是 BeanHandlerActor actor = queryRunner.query(connection, sql, new BeanHandler<>(Actor.class), 1);System.out.println(actor);// 释放资源JDBCUtilsByDruid.close(null, null, connection);}

 3.返回单行单列

public void testScalar() throws SQLException {Connection connection = JDBCUtilsByDruid.getConnection();QueryRunner queryRunner = new QueryRunner();String sql = "select name from actor where id = ?";//因为返回的是一个对象, 使用的handler 就是 ScalarHandlerObject obj = queryRunner.query(connection, sql, new ScalarHandler(), 4);System.out.println(obj);// 释放资源JDBCUtilsByDruid.close(null, null, connection);}

4.dml操作

public void testDML() throws SQLException {Connection connection = JDBCUtilsByDruid.getConnection();QueryRunner queryRunner = new QueryRunner();//这里组织sql 完成 update, insert delete//String sql = "update actor set name = ? where id = ?";//String sql = "insert into actor values(null, ?, ?, ?, ?)";String sql = "delete from actor where id = ?";//(1) 执行dml 操作是 queryRunner.update()//(2) 返回的值是受影响的行数 (affected: 受影响)int affectedRow = queryRunner.update(connection, sql, 1000 );System.out.println(affectedRow > 0 ? "执行成功" : "执行没有影响到表");// 释放资源JDBCUtilsByDruid.close(null, null, connection);}
http://www.yayakq.cn/news/655596/

相关文章:

  • 东莞网站建设五金建材wordpress除了首页全是404
  • 外贸网站建设 惠州东莞vi设计公司排名
  • 网站富文本的内容怎么做怎样在网上做环保设备网站
  • 宁波网站建设制作电话号码网站开发时间安排
  • 学院网站建设自媒体营销推广
  • 东城网站建设哪家好php 做网站 python
  • 品牌网站设计方案自己做网站是用什么软件
  • 网站服务器是指什么手机门户网站建设
  • 企业网站建设 属于什么费用wordpress字体编辑插件下载
  • 阜阳微商城网站建设苏州专业做网站公司电话
  • 大沥网站建设公司域名搭建网站
  • 网站建设的原则 流程上海出大事啦
  • 徐州h5建站模板陕西网站建设
  • 网站模板 商标国内好用的搜索引擎
  • 找装修济南 网站优化
  • 傻瓜做网站用什么软件南宁定制网站制作电话
  • 网站销售需要什么手续微信文章导入wordpress
  • 企业网站制作建设的框架有哪几种网站建设项目中标通知
  • 响应式网站栅格网站开发三个月能学会吗
  • 九江做网站的公司建设银行培训网站
  • 合肥网站 技术支持 上诚科技网站说服力营销型网站策划
  • wordpress清空文章备份并对齐id兰州网络优化
  • 网站开发课程的心得wordpress教程 aliyun
  • 定制网站建设推广服务wordpress需要登录
  • 如何用ip地址做网站南阳网站建设价格
  • 摄影网站建设目的wordpress占用内存高
  • 汽车网站建设背景安徽住房建设厅官网信息查询
  • 南昌旅游网站建设方案企业网站建设实训报告体会
  • 无锡网站建设 君通科技服务器做网站流程
  • 汕头有没有做网站网站全局搜索如何做