web_03Java ee实现定时跳转,使用C3P0,DBUtils类重构数据库操作
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 );