本帖最后由 13163997058 于 2018-5-29 11:49 编辑
王刘锁
看着写过的代码才能想起来今天学习了什么!首先是事务的处理,主要就是一个Connection接口,它有两个作用一是创建连接二是管理事务! 这个接口中有一些方法用来管理事务.事务就是一组操作,这组操作的各个步骤要么全部成功要么全部失败.事务的管理方法:
开启事务:conn.setAutoCommit(false);括号内写false意思是不自动提交事务
提交事务:conn.commit();回滚事务:conn.rollback();
然后学习了连接池的工作原理,主要学习的是怎么自定义一个连接池当然这不是今天的重点,所以不多记录,能做到理解会用就可以!接下来学习的是一些开源的连接池像阿里巴巴的Druid,阿帕奇的C3PO,老师说重点掌握C3PO,那今天就多练习一下C3PO好了.敲了好多遍的代码结果做作业的时候又是一脸懵的去翻笔记,这真的很愁人!下面是凭记忆记录的,不知道能有多少错误!那种很麻烦的手动连接的方式就不写了,直接记配置文件的方式.
首先配置文件的注意事项:文件名字不能乱改,是固定的 c3po-config.xml
然后是里面的属性也不能改,都是系统认定的!那我们能改的只有具体的值classname,url,user,password,这些内容.
那c3po的创建连接池的方式是:ComboPooledDataSource dataSource = new ComboPooledDataSource();其它的好像就没有什么变化的了!
还有就是DBUtils工具类.不过今天没来得及练习.就不记录了,明天练习完了再添加!!
来补充一下昨天没写完的DBUtils,今天上午在敲完日常作业后准备去练习一下
DBUtils的CURD操作,结果创建好Java文件不知道怎么去写代码,后来去翻了笔记发现
笔记中也没有什么信息,最后去了百度百科去查了一下,大概有了一些理解,又去代码
中写了几遍,在这里记录一下自己的理解,首先DBUtils是一个工具类库,
它主要是封装了我们的JDBC代码,以前我们用JDBC来和数据库建立连接并做一些CRUD
的操作,那时候我们的代码会很繁琐而且重复性太高.后来我们可以自定义工具类把注
册驱动和建立连接的方法还有释放资源的方法放到工具类中,这样很大程度上简化我
们的代码,而且复用性提高很多,可是即便有了工具类还是代码还是不够完美,那么
DBUtils的作用就凸显出来了,它对JDBC的封装极大程度简化我们的代码,让我们可以
用两行代码就完成CRUD的操作,那我们去使用它就需要记住它的主要核心类
QueryRunner,首先我们需要通过构造方法来获取到QueryRunner对象,一种是无参
QueryRunner()创建的是一个没有连接的对象,操作数据库的时候还要创建连接比较麻
烦,但是可以手动管理事务,第二种是有参QueryRunner(DataaSource ds),这个构造参
数是一个连接池对象,在这里我们可以用我们之前定义的JDBCUtils2这个工具类来获
取C3PO的连接池,这个构造出来的对象不用我们再获取连接,而且是自动管理事务,
那重要的是要记住CRUD操作的方法,一个增删改,一个查询,查询还没学先不记录,
有参增删改:update(String sql,object...param);
无参增删改:update(Connection conn,String sql,object...param);
这里面直接写sql语句,后面的参数是解决sql注入问题的那个?对应的值,sql语句中有
多少?后面就有多少个值!而且顺序和类型必须对应!无参的不过是多给一个连接对象,
练习的时候我尝试用一个QueryRunner对象去同时执行多条sql语句结果没有报错,但
是这好像也没什么用!!
|