45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:9月15日培训日记内容解说

9月15日培训日记内容解说

2016-09-02 09:47:30 来源:www.45fan.com 【

9月15日培训日记内容解说

根据李杰将建立数据库连接的作业采用spring bean的方式来完成的,讲解了如下知识:
1.BeanFactoryPostProcessor,PropertyPlaceholderConfigurer(把properties文件中的数据拿来换掉配置文件中的${})
2.BeanPostProcessor的作用,BeanPostProcessor是监听其他bean的初始化过程,并且只能原型的bean。
3.<Bean>元素的init-method属性。
总结流程:
1.读取配置文件
2.创建Bean实例
3.调用BeanFactoryPostProcessor
4.为Bean赋属性值
5.调用BeanPostProcessor(只有ApplicationContext才会自动调用,BeanFactory不自动调用)
5.1 postProcessBeforeInitialization(对初始化方法产生影响的代码)
5.2 <Bean>元素的init-method属性
5.3 postProcessAfterInitialization(要利用初始化方法结果的代码)

王泽佑写了个BeanFactoryPostProcessor,结果spring没有执行其中的方法?怎么回事?还是ApplicationContext与BeanFactory的问题。
看帮助:Connection,statement,ResultSet被垃圾回收后,都会自动关闭资源。Statement关闭会导致Resultset关闭。
要写就一块写(拧螺母故事和造坦克的故事):
rs.close();
rs = null;

点评王涛写的验证用户登录的程序:
import java.io.*;
import java.sql.*;

public class ErrorClass
{

public static void main(String[] args)throws Exception
{
ResultSet rs=null;

Connection con=null;
Statement sm = null;
BufferedReader br = null;

Class.forName("com.mysql.jdbc.Driver");
try{

con = DriverManager.getConnection("jdbc:mysql://localhost/itcast","root","");
sm = con.createStatement(ResultSet.CONCUR_UPDATABLE,ResultSet.TYPE_SCROLL_INSENSITIVE);

br = new BufferedReader(new InputStreamReader(System.in));
rs = sm.executeQuery("select student.name,student.psw from student");
System.out.println("请输入用户名,按回车结束");
String inuse = br.readLine();

System.out.println("请输入密码,按回车结束");
String inpsw = br.readLine();
br.close();
//Boolean bool = false;

while(rs.next())
{
if(inuse.equals(rs.getString(2)) && inpsw.equals(rs.getString(3)))
{
System.out.println("用户名和密码正确");
//bool = true;
break;
}

}
if(rs.isAfterLast())
{
System.out.println("用户名和密码错误");
}
}
catch(Exception e)
{
e.printStackTrace();
}

finally
{

rs.close();
con.close();
sm.close();

}
}
}
问题:
1.变量命名应尽量与大多数人的习惯一致,例如,con改为cn,sm改为stmt
2.判断找到记录的方式还可以改善,while条件中只负责判断是否找到,找到和没找到的打印信息应在while之后,并且rs.isAfterLast()是否可靠也值得怀疑。
3.查询出所有用户后再比较判断用户是否存在,这是一个非常低劣的做法,如果记录较多,运行效率会很低。
4.最后关闭结果集,命令和连接的代码写得太随意,太马虎!
通过王涛写的这个程序,发现学员当前更需要动手练习,然后由老师指正学员程序中的问题。我们应多布置些有实际意义和解决实际问题的练习题,然后对学员完成的作业进行点评。课后调查了一下,学员们现在都急切需要留出一段时间来总结和消化前面所讲的知识。


本文地址:http://www.45fan.com/dnjc/71203.html
Tags: 9月 培训 15日
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部