5.5.4 JavaBean设计(1)
本实例涉及到3个主要的JavaBean组件,分别为用户实例对象User、用户数据库操作对象UserDao类、数据库连接工具类DataBaseUtil。
1.用户实体对象
User类用于封装用户实体对象,提供了用户对象的详细信息以及相应的getXXX()与setXXX()方法。其关键代码如下:(以下"代码位置"在光盘\TM\Instance路径下)
代码位置:UserLogin\src\com\lyq\Model\User.javapublicclassUser {
privateintid;//标识
privateString username;//用户名
privateString password;//密码
privateString sex;//性别
privateString tel;//电话
privateString photo;//头像
privateString email;//电子邮箱
publicintgetId() {
returnid;
}
publicvoidsetId(intid) {
this.id = id;
}
//省略部分getXXX()与setXXX()方法
}
2.数据库连接工具类
对于经常用到的操作可以将其封装为一个类,在类中提供相应的操作方法,从而增强代码的重用性。实例中将繁琐的获取数据库的连接与关闭操作封装到DataBaseUtil类中,其关键代码如下。
代码位置:UserLogin\src\com\lyq\util\DataBaseUtil.javapublicclassDataBaseUtil {
/**
* 获取数据库连接
* @return Connection对象
*/
publicstaticConnection getConnection(){
Connection conn =null;
try{
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//数据库连接url
String url ="jdbc:mysql://localhost:3306/db_database05";
//获取数据库连接
conn = DriverManager.getConnection(url,"root","111");
}catch(Exception e) {
e.printStackTrace();
}
returnconn;
}
/**
* 关闭数据库连接
* @param conn Connection对象
*/
publicstaticvoidcloseConnection(Connection conn){
//判断conn是否为空
if(conn !=null){
try{
conn.close();//关闭数据库连接
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
getConnection()方法用于获取数据库的连接,返回Connection对象;closeConnection()方法用于关闭数据库的连接。这两个方法均为静态方法,可以直接调用。
3.用户数据库操作
与用户相关的数据库操作方法被封装在UserDao类中,此类提供了实例中所用到的数据添加与查询方法,其中userIsExist()方法用于查询指定用户名在数据库中是否存在,返回布尔值。其关键代码如下:
代码位置:UserLogin\src\com\lyq\model\dao\UserDao.javapublicbooleanuserIsExist(String username){
//获取数据库连接Connection对象
Connection conn = DataBaseUtil.getConnection();
//根据指定用户名查询用户信息
String sql ="select * from tb_user where username = ?";
try{
//获取PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
//对用户对象属性赋值
ps.setString(1, username);
//执行查询获取结果集
ResultSet rs = ps.executeQuery();
//判断结果集是否有效
if(!rs.next()){
//如果无效则证明此用户名可用
returntrue;
}
//释放此 ResultSet 对象的数据库和 JDBC 资源
rs.close();
//释放此 PreparedStatement 对象的数据库和 JDBC 资源
ps.close();
}catch(SQLException e) {
e.printStackTrace();
}finally{
//关闭数据库连接
DataBaseUtil.closeConnection(conn);
}
returnfalse;
}
【责任编辑:云霞 TEL:(010)68476606】
点赞 0