• 连接池



    总结:1.连接池:java对外提供了连接的接口,连接池的存在就省去了每次创建和释放连接。
    2.连接池的连接条件:1.将commons-pool-1.5.6.jar的jar包引进java项目下的lib文件夹
    3.用连接池对象代替dao'层的Connection对象;
    4.在tools工具包里创建MyDBUtils工具文件和JDNCUtils一样
    QueryRunner qr=new QueryRunner(MyDBUtils.getDatasource());用MyDBUtils.getDatasource()代替了Connection
    String sql="select * from user where name=?";
    Object[] obj={"小红"};
    int row=qr.update(sql,obj);
    使用连接池也不需要释放
    5.什么是事务:一件事情由n个单元组成,要么这n个丹玉一起成功要么这n个单元一起失败,这n个单元一起组成的事情就叫事务
    6.一条sql语句就是一个事务,默认开启事务并提交事务
    7.Mysql的事务:1.开启事务:start transaction()运行的sql会先存在内存中,所以没有改变数据库,所以说,rollback回滚以后能回复,因为没有改变数据库,需要commit提交才会把sql 语句执行后的结果写进数据库里
    commit:是提交事务,将事务开启到事务提交这一块的sql会真正的提交到数据库,并对数据库进行修改
    事务回滚:rollback:从事务开启到事务回滚,这一块所有的sql都没有效果,
    事务开启后,只是把sql语句的运行和运行结果存储在内存中并没有作用在数据库上所以可以回滚后恢复原来的样子
    8.JDBC事务操作:1.executeypdate()和executequery都是事务自动提交了,每一次执行都会提交
    9.开启事务:conn.setAutoComnmit(false)(默认的是true是自动提交,需要改成false才会自动提交)
    10.事务提交:conn.commit; 事务回滚:conn.rollback;
    11.控制事务的Connection必须是同一个Connection因为需要包装控制的是同一个事务
    12.事务的特性和隔离级别:原子性:指事务是一个不可分离的整体要么都执行要么都不执行
    13.一致性:一个事务中,事务的前后数据的完整性必须保持一致
    14.隔离性:指多个事务,指多个用户一起访问时
    15.持久性:是指一但事务提交那么对数据库的影响是永久的,即使数据库发生了故障。
    16.账号的转入转出:1.jsp文件:<body> <form action="/Servlet" method="post">
    转出账户:<input type="text" name="out">
    转入账户:<input type="text" name="in">
    转出金额:<input type="text" name="money">
    提交:<input type="submit" value="确认"> </form> </body>
    Dao层:转出:public void outmoney(Connection conn,String out,double money){
    QueryRunner qr=new QueryRunner();
    String sql="update conn set money=money-? where uname=?";
    qr.update(conn,sql,out,money);
    转入:public void inmoney(Connection conn,String in,double money){
    String sql="update conn set money=money+? where uname=?";
    qr.update(conn,sql,in,money);
    Service层:public void trans(String out,String in,double money){
    Connection conn=MyDBUtils.getconn();
    try{conn.setAutoComit(false); dao.outmoney(conn,out,money); dao.inmoney(conn,in,money)
    conn.comit(); }catch{conn.rollback};
    Servlet层:request.setcharacterEncoding("UTF-8");
    1.获取数据: String out=request.getParameter("out"); String in=request.getParameter("in")
    String moneyy=request.getParameter("money"); double money=Double.parseDouble(moneyy);
    servicr.tansl(out,in,money);
    response.setContentType("text/html;setchar=UTF-8");
    response.getwriter().write("转账成功")


  • 相关阅读:
    Codeforces Round #251 (Div. 2) A
    topcoder SRM 623 DIV2 CatAndRat
    topcoder SRM 623 DIV2 CatchTheBeatEasy
    topcoder SRM 622 DIV2 FibonacciDiv2
    topcoder SRM 622 DIV2 BoxesDiv2
    Leetcode Linked List Cycle II
    leetcode Linked List Cycle
    Leetcode Search Insert Position
    关于vim插件
    Codeforces Round #248 (Div. 2) B. Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/hankai2735/p/11598044.html
Copyright © 2020-2023  润新知