web_03Java ee实现定时跳转,使用C3P0,DBUtils类重构数据库操作

时间:2021-08-31 11:13:08

Web

  Web_02版本:
    实现功能
      1,定时跳转

      2,C3P0连接池

      3,DBUtils工具类

       设计内容
      1,setHeader方法
      2,
      3,
    *重点

      1,定时跳转:

        1,selver实现类中:

          response.setHeader("refresh", "5;url=url=/Web_01/main.html");

          使用response中的setHeader方法;设置倒计时的时间与跳转的页面。

        2, Jsp页面:

          

<body onload="run()">
页面将在<span id="spanId">5</span>秒后跳转!! </body>
<script type="text/javascript">
// 页面一加载完成,该方法就会执行
// 读秒,一秒钟数字改变一次
var x = 5;
function run(){
// 获取到的是span标签的对象
var span = document.getElementById("spanId");
// 获取span标签中间的文本
span.innerHTML = x;
x--;
// 再让run方法执行呢,一秒钟执行一次
window.setTimeout("run()", 1000);
} </script>

              上述代码实现设置倒计时数字的变化。run方法每秒执行一次,每次表示时间的数字减一;

      2,重写DBUtil类:

       原本的思维:

           加载驱动:Class.forName("com.mysql.jdbc.Driver");

          获取链接:

            DriverManager.getConnection("jdbc:mysql:///h_db", "root", "123456");

       使用C3P0作为连接池之后:

          获取C3p0连接池:

            private static ComboPooledDataSource dataSource = new ComboPooledDataSource();

      3,重写UserDaoImpl类:

      原本的思维:

        获取connection连接: conn=DBUtil.getConnection();

        设置数据库操作对象:pst=conn.prepareStatement(sql);

          String sql="insert into user (username,password) values(?,?)";

          设置sql语句的?对用的参数:

           pst.setString(1, u.getName());
           pst.setString(2, u.getPassword());

     使用DBUtils之后:        

        先创建QueryRunner类:QueryRunner runner = new QueryRunner(DBUtil.getDataSource());

          测试增删减的方法:

                      String sql="insert into user (username,password) values(?,?)";

           runner.update(sql , new String[]{u.getName(),u.getPassword()})

       测试查找的方法:

           String sql = "select * from user where username =?";

         u = runner.query(sql, new BeanHandler<User>(User.class),username );