Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2223174
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: Java

2011-07-14 21:36:39

 

创建DAO

 

 

版本号:0.1

制定日期:2010-12

 

 

 

 

 

 

 

 

 

编制

冯宝鹏

日期

2010-12-24

审核

 

日期

 

批准

 

日期

 

 


文档修订记录

修订日期

修订内容

修订人

 

 

 

 

 

 

 

 


 

1 开发数据库访对象... 4

1.1      开发流程... 4

 

 

 


开发数据库访问对象

1.       先将mysql数据库的jdbc驱动复制粘贴到所开发项目的lib目录之下,它会自动加入到引用类库当中。

2.       接着开发实体类,该实体类必须与数据库表的数据相对应。

 实体类代码如下

package entity;

 

public class Student {

       int id,age;

       String username,password;

       public int getId() {

              return id;

       }

       public void setId(int id) {

              this.id = id;

       }

       public int getAge() {

              return age;

       }

       public void setAge(int age) {

              this.age = age;

       }

       public String getUsername() {

              return username;

       }

       public void setUsername(String username) {

              this.username = username;

       }

       public String getPassword() {

              return password;

       }

       public void setPassword(String password) {

              this.password = password;

       }

 

}

 

 DAO层代码如下:

package dao;

import java.sql.SQLException;

import entity.Student;

/**

 *   学生数据访问类

 * @author Tom

 * @version0.1 2010-12-24

 */

 

public class StudentDAO {

       /**

        * 根据用户名和密码找到用户对象

        * @param username 用户名

        * @param password 密码

        * @return 找到的用户对象,找不到返回null

        */

       public Student findStudent(String username,String password){

              try{

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

                    

              }catch(ClassNotFoundException e){

                     e.printStackTrace();

              }

             

              java.sql.Connection conn=null;   //数据库连接

              java.sql.PreparedStatement pstmt=null;  //数据库表达式 

                                                      //使用PreparedStatement可以有效的防治SQL注入攻击

              java.sql.ResultSet rs=null;          //结果集

              String sql="select * from Student where username=? and password=?";    //SQL

             

              try{   

                     conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK","root","admin");

                     pstmt=conn.prepareStatement(sql);

                     pstmt.setString(1,username);

                     pstmt.setString(2,password);

                     rs=pstmt.executeQuery();

                    

                     if(rs!=null&&rs.next()){

                            //读到数据,生成实体类

                            Student student=new Student();

                            student.setId(rs.getInt(1));   //等价于getInt("id");

                            student.setUsername(rs.getString("username"));

                            student.setPassword(rs.getString("password"));

                            student.setAge(rs.getInt("age"));

                            return student;

                     }

              }catch(SQLException e){

                     e.printStackTrace();

              }finally{

                     //6.释放资源,建议放在finally语句中确保都被关闭掉了

                     try{

                            rs.close();

                     }catch(SQLException e){}

                     try{

                            pstmt.close();

                     }catch(SQLException e){}

                     try{

                            conn.close();

                     }catch(SQLException e){}

       }

     return null;

}

        public static void main(String[] args){

               Student student=new StudentDAO().findStudent("张三","1234");

               System.out.println(student.getUsername());

        }    

 

}

 

阅读(879) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~