qq_36914504 2017-05-16 16:12 采纳率: 0%
浏览 823
已结题

新手学习 希望大神给我写点注释,从根据编号查询开始

package dao.impl;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import pojo.Lian;
import dao.UserDao;

public class UserDaoImpl implements UserDao {

//用于数据库连接
Connection conn=null;
//用于对结果的预处理
Statement st=null;
//用于处理结果集
ResultSet rs=null;
220
public boolean getConnection(){


    String driver ="com.mysql.jdbc.Driver";//数据库的驱动!!
    String url="jdbc:mysql://localhost:3306/zhou";//数据库的地址!!
    String username="root";//表示用户名称
    String password="zhou";//表示用户的密码

    try {
        //加载驱动类
        Class.forName(driver);
        //连接数据库
        conn=DriverManager.getConnection(url,username,password);//表示要使用驱动以此来链接数据库

    } catch (Exception e) {

        e.printStackTrace();//catch作用是抓住异常
    }

    return true;    

}

@Override
public List<Lian> getLian() {

    List<Lian> list=new ArrayList<Lian>();//定义一个list类

    String sql="select *from lian";//用sql语句创建一个查询

    try {
        if(this.getConnection()){//假如这个链接成功就将执行查询

            //获取Statement对象执行sql语句
            st=conn.createStatement();
            //获取结果集
            rs=st.executeQuery(sql);

            while(rs.next()){
                //查询出所有信息,取出rs对象中的各字段名下的内容,赋值给各变量
                int id=rs.getInt("id");//使用get方法
                String name=rs.getString("name");
                 String password=rs.getString("password");
                 int age=rs.getInt("age");
                 String iphone=rs.getString("iphone");
                 String address=rs.getString("address");
                 //System.out.println("id:"+id+"name:"+name+"password:"+password+"age:"+age+"iphone:"+iphone+"address:"+address);

                 Lian u=new Lian();
                 u.setId(id);
                 u.setName(name);
                 u.setPassword(password);
                 u.setAge(age);
                 u.setIphone(iphone);
                 u.setAddress(address);

                 list.add(u);

            }

        }

    } catch (SQLException e) {

        e.printStackTrace();
    }finally{
        try {

            rs.close();//关闭数据库 避免浪费资源
            st.close();//关闭statement
            conn.close();//关闭链接

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    return list;//返回list类对象
}

@Override
public Lian add(Lian user) {
    String sql="INSERT INTO lian (name,password,age,iphone,address)VALUES('"+user.getName()+"',"+user.getPassword()+",'"+user.getAge()+"','"+user.getIphone()+"','"+user.getAddress()+"')";
//利用sql语句实现list中数据的增加
    if(this.getConnection()){
        try {

        st=conn.createStatement();

        int i=st.executeUpdate(sql);//当数据更新时,i的值就被重新赋予

        if(i>0){

            System.out.println("添加数据成功!!!");
        }

        } catch (Exception e) {

            e.printStackTrace();
        }finally{
            try {

                st.close();//关闭状态集
                conn.close();//关闭链接

            } catch (SQLException e) {

                e.printStackTrace();
            }

        }
    }

    return user;
}

@Override
public boolean update(Lian user) {//修改lian表中数据资料
    String sql="update lian set name=?,password=?,age=?,iphone=?,address=? where id=?";

    try {

        if(this.getConnection()){
            //预处理,对表链接成功与否进行判断
        PreparedStatement ps=conn.prepareStatement(sql);

            ps.setString(1, user.getName());// 通过函数方法对新的参数赋值                                                               i
            ps.setString(2,user.getPassword());
            ps.setInt(3, user.getAge());
            ps.setString(4, user.getIphone());
            ps.setString(5, user.getAddress());
            ps.setInt(6, user.getId());

            ps.addBatch();

            int i=ps.executeUpdate();//当数据被更改,i的值将被重新赋予


            if(i>0){
                System.out.println("嘿,哥们,你已经成功的更新数据了!!!");
                return true;//提示数据更新成功
            }else{
                System.out.println("更新数据出错,再来一次???");
                return false;//提示数据更新失败
            }
        }
    } catch (SQLException e) {

        e.printStackTrace();
    }finally{
        try {
            if(rs!=null){rs.close();}//关闭结果集
            if(st!=null){st.close();}//关闭状态集
            if(conn!=null){conn.close();}//关闭链接

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }



    return false;
}

@Override
public void delete(int id) {
    String sql="delete from lian where id=?";
    //使用sql语句删除lian类中的数据
    try {

        if(this.getConnection()){

            PreparedStatement ps=conn.prepareStatement(sql);

            ps.setInt(1, id);
            //驱动将其值转化为sql整数类型值
        int i=ps.executeUpdate();

            if(i>0){
                System.out.println("删除成功");
                //提示删除成功
            }

        }



    } catch (SQLException e) {

        e.printStackTrace();
    }
    finally{
        try {
            rs.close();//关闭结果集
            st.close();//关闭状态集
            conn.close();//关闭链接

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

}

//用户的登录
public Lian login(Lian user){

    String sql="select name,password from lian";
    //使用sql语句查询lian表中的姓名和密码数据
    Lian us =new Lian();
    //创建一个新lian表
    if(this.getConnection()){
        try {
            st=conn.createStatement();

            ResultSet rs=st.executeQuery(sql);

            while(rs.next()){
                String name=rs.getString("name");
                String password=rs.getString("password");

                us.setName(name);

                us.setPassword(password);

                return us;
            }


        } catch (SQLException e) {

            e.printStackTrace();
        }


    }

    return us;

}
//s根据编号来查询
@Override
public Lian findById(String usrId) {

    String sql="select * from lian where id =" +usrId;
     Lian u=null;       

    try {
        u=new Lian();
        if(this.getConnection()){

            //获取Statement对象执行sql语句
            st=conn.createStatement();
            //获取结果集
            rs=st.executeQuery(sql);
            while(rs.next()){
                //查询出所有信息,括号里面对应的是数据库表的字段名,也就是实体类的名字
            int id=rs.getInt("id");
            String name=rs.getString("name");
             String password=rs.getString("password");
             int age=rs.getInt("age");
             String iphone=rs.getString("iphone");
             String address=rs.getString("address");
             //System.out.println("id:"+id+"name:"+name+"password:"+password+"age:"+age+"iphone:"+iphone+"address:"+address);


             u.setId(id);
             u.setName(name);
             u.setPassword(password);
             u.setAge(age);
             u.setIphone(iphone);
             u.setAddress(address);
            }
             System.out.println(u.getName()+u.getAddress());
        }
        return u;
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{
        try {
            rs.close();
            st.close();
            conn.close();

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }
    return u;
}

}


/*public static void main(String[] args) {

    UserDao u=new UserDaoImpl();

    Lian p=new Lian();

    p.setName("zhou");
    p.setPassword("12456");

    u.login(p);

// p.setId(5);
// p.setAddress("九华山");
// p.setAge(24);
// p.setIphone("1345687912");
// p.setName("sanye");
// p.setPassword("123456");
//

// u.add(p);

    //u.update(p);
    //u.delete(5);

// List list=u.getLian();
//

// for (Lian lian : list) {
//

// System.out.println(lian.toString());
// }
//

}*/

  • 写回答

2条回答

  • mooZHENQIANGgggg 2017-05-16 17:32
    关注

    不是都有注释吗?就是java连接数据库,操作数据啊

    评论

报告相同问题?

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!