web基础dao层开发

来源:互联网 发布:淘宝泳衣女装 编辑:程序博客网 时间:2024/05/22 14:46

前几天写了jsp调servlet层,今天写了dao层操作数据库。

首先新建数据库我是用的sql server数据库。建好数据库和表之后,根据数据库字段新建UserVo类,此类的属性跟表字段一一对应,

然后创建get  set方法。

UserVo这个类在整个项目中占有很重要的地位,即可得到前端传来的参数,又可得到数据库返回的数据。

数据库跟UserVo类创建好之后,就创建连接数据库类,然后创建dao层,dao层使用的是接口类型的,为了实现多态,方便其他类调用。

接口是没有方法体的,dao层的方法体主要是在dao的实现层体现出来的。

,public static Connection getConnection()
    {   
        Connection conn=null;
        
        try {
            //获得odbc驱动
            /*Driver driver=DriverManager.getDriver("jdbc:odbc:ticket");
            //注册驱动
            DriverManager.registerDriver(driver);
            //建立数据库连接
            conn=DriverManager.getConnection("jdbc:odbc:ticket");*/
            //加载驱动(把需要的驱动加入内存)
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//sun.jdbc.odbc.JdbcOdbcDriver是sql server自带的桥接驱动,每个数据库都有自动的驱动和驱动包

            //得到连接(指定连接到哪个数据源)数据源指向数据库从而连接数据库
            conn=DriverManager.getConnection("jdbc:odbc:hpe");

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;

连接数据库,因为不想下载sql server的驱动jar包了,所以就采用jdbc-odbc的桥接形式连接,

public static void colse(Connection conn)
    {
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

连接数据源处理后一定要关闭连接。

然后写dao层和实现层,写实现层时候先建立数据库连接Connection ,然后创建sql语句。然后通过连接获取sql容器preparedstatement。

再然后给sql语句占位符赋值,然后再查数据库,如果数据库有返回值则把支取出来,赋给UserVo从而返回出去。

Connection conn=null;
        List list=new ArrayList();
        conn=Utilcom.getConnection();
        String sql="select * from tableuser";
        try {
            PreparedStatement state= conn.prepareStatement(sql);
            ResultSet rs=state.executeQuery();
            while(rs.next()==true){
                UserVo user=new UserVo();
                String username=rs.getString(1);
                String psd=rs.getString(2);
                String sex=rs.getString(3);
                user.setPassword(psd);
                user.setSex(sex);
                user.setUsername(username);
                list.add(user);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            Utilcom.close(conn);
        }
        return list;

如果没返回指的话直接执行修改增加删除即可

public void addUser(UserVo user) {
        // TODO Auto-generated method stub
        Connection conn=null;
        conn=Utilcom.getConnection();
        String sql="insert into tableuser (username,password,sex) values (?,?,?)";
        try {
            PreparedStatement state=conn.prepareStatement(sql);
            state.setString(1, user.getUsername());
            state.setString(2, user.getPassword());
            state.setString(3, user.getSex());
            int rs=state.executeUpdate();
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            Utilcom.close(conn);
        }
    }


0 0
原创粉丝点击