首页 > 代码库 > 2017年6月短学期培训代码总结 -----JDBC

2017年6月短学期培训代码总结 -----JDBC

本次代码主要描述了本地数据库后,使用JAVA语言进行 增 删 改 查,具体代码如下:

接口类代码

package cn.neusoft.mybatis.dao;

import java.util.List;

import cn.neusoft.mybatis.pojo.Userinfo;

public interface UserinfoDao {

    //插入用户信息的插入       Userinfo 实体类可以携带  用户信息
    public boolean addUser(Userinfo userinfo);
    //根据  用户姓名   修改   用户密码
    public boolean updateUser(Userinfo userinfo);
    //根据   用户姓名   删除 用户信息
    public boolean deleteUser(String username);
    //查询所有用户信息
    public List<Userinfo>  findAll();
    //根据用户名查询  个人信息 ,根据实际情况一个用户名只会查到一个用户,所以只能查到记录,所以不用list
    public  Userinfo getuser(String username);
    public  Userinfo findByUsername(String username);
    //选做   实现如下分页查询方法    
    //select * from userinfo limit  pageSize(pageNo-1),pageSize;
    public  List<Userinfo> findByPage(int pageSize,int pageNo);
}

 

 


方法类代码:

package cn.neusoft.mybatis.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.neusoft.mybatis.jdbc.Dbutils;
import cn.neusoft.mybatis.pojo.Userinfo;

public class UserinfoDaoImpl implements UserinfoDao {

    @Override
    public boolean addUser(Userinfo userinfo) {
        //读取Userinfo 实体类的信息,然后把信息插入到数据库
        
        //1.编写sql 语句
        String sql = "insert into userinfo (username,pwd) values (?,?)";
        //2.如果sql 语句中有问号,我们需要对应信息
        //obj 对象中  userinfo.getUsername()在本方法对应第一个问号
        //         userinfo.getPwd()在本方法对应第二个问号
        Object[] obj = new Object[]{userinfo.getUsername(),
                                    userinfo.getPwd()};
        //3.把sql 语句   以及  obj 对象 放入Dbutils  的executeUpdate方法中进行执行
        //注意 ,Dbutils  的executeUpdate方法类型是int 类型的,只能使用int类型接收
        int a = Dbutils.executeUpdate(sql, obj);
        if(0!=a){//如果insert  操作能执行,那么a 的值就不会是0,那么我们认为操作成功,返回true
            return true;
        }
        return false;
    }

    @Override
    public boolean updateUser(Userinfo userinfo) {
        // TODO Auto-generated method stub
        String sql  = "update userinfo set pwd=‘"+userinfo.getPwd()+
                "‘ where username=‘"+userinfo.getUsername()+"‘";        
        System.out.println(sql);
        //由于以上sql文我们没有写?  所以呢  不用使用Object[]对象作填充
        int a = Dbutils.executeUpdate(sql, null);
        if(0!=a){
            return true;
        }
        return false;
    }
    @Override
    public boolean deleteUser(String username) {
        // TODO Auto-generated method stub
        String sql = "delete from userinfo where username = ?";
        Object[] obj = new Object[]{username};
        int a = Dbutils.executeUpdate(sql, obj);
        if(0!=a){
            return true;
        }
        return false;
    }
    
    //查询所有用户信息   最终返回一个list  集合
    @Override
    public List<Userinfo> findAll() {
        // TODO Auto-generated method stub
        List<Userinfo> list = new ArrayList<Userinfo>();
        String sql = "select * from userinfo";
        //把sql 文  查询结果返回给  ResultSet 对象
        ResultSet rs = Dbutils.executeQuery(sql, null);
        
        try {
            while(rs.next()){
                //由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
                //Userinfo
                Userinfo userinfo =  new Userinfo();
                //把rs 对象中查询到的每一组信息放入Userinfo实体类中
                userinfo.setUserid(rs.getInt("userid"));
                userinfo.setUsername(rs.getString("username"));
                userinfo.setPwd(rs.getString("pwd"));
                list.add(userinfo);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return list;
    }
    
    @Override
    public Userinfo getuser(String username){
        String sql="select * from userinfo where username=‘"+username+"‘";
        ResultSet rs = Dbutils.executeQuery(sql, null);
        Userinfo userinfo =  new Userinfo();
        //把rs 对象中查询到的每一组信息放入Userinfo实体类中
        
        try {
            if(rs.next()){
                
        userinfo.setUserid(rs.getInt("userid"));
        userinfo.setUsername(rs.getString("username"));
        userinfo.setPwd(rs.getString("pwd"));
        
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return userinfo;
    }

    @Override
    public Userinfo findByUsername(String username) {
        // TODO Auto-generated method stub
        String sql="select * from userinfo where username=?";
        Object[] obj = new Object[]{username};
        ResultSet rs = Dbutils.executeQuery(sql, obj);
        Userinfo userinfo =  new Userinfo();
        try {
            while(rs.next()){
                //由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
                //Userinfo
                //把rs 对象中查询到的每一组信息放入Userinfo实体类中
                userinfo.setUserid(rs.getInt("userid"));
                userinfo.setUsername(rs.getString("username"));
                userinfo.setPwd(rs.getString("pwd"));
            }    
        }catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        return userinfo;
    }
    
    @Override
    public List<Userinfo> findByPage(int pageSize, int pageNo) {
        List<Userinfo> list = new ArrayList<Userinfo>();
        int  i=pageSize*(pageNo-1);
        String sql = "select * from userinfo limit ?,?";
        //把sql 文  查询结果返回给  ResultSet 对象
        Object[] obj = new Object[]{i,pageSize};
        ResultSet rs = Dbutils.executeQuery(sql, obj);
        
        try {
            while(rs.next()){
                //由于查询所有信息,意味着Userinfo需要重复使用,那么就会在循环体中多次使用
                //Userinfo
                Userinfo userinfo =  new Userinfo();
                //把rs 对象中查询到的每一组信息放入Userinfo实体类中
                userinfo.setUserid(rs.getInt("userid"));
                userinfo.setUsername(rs.getString("username"));
                userinfo.setPwd(rs.getString("pwd"));
                list.add(userinfo);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return list;
    }
    }

 

 


测试方法代码:

package cn.neusoft.mybatis.test;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;

import cn.neusoft.mybatis.dao.UserinfoDao;
import cn.neusoft.mybatis.dao.UserinfoDaoImpl;
import cn.neusoft.mybatis.pojo.Userinfo;

public class UserinfoDaoImplTest {
    
    private UserinfoDao userinfoDao = new UserinfoDaoImpl();
    /*@Test
    public void testAddUser() {
        //将类加载
        UserinfoDao dao = new UserinfoDaoImpl();
        //将  网页上获取的信息   放入   Userinfo  实体类
        Userinfo userinfo = new Userinfo("moucong", "123");
        boolean b = dao.addUser(userinfo);
        if(b){
            System.out.println("注册成功!");
        }else{
            System.out.println("注册失败!");
        }
    }
    
    @Test
    public void testUpdateUser(){
        UserinfoDao dao = new UserinfoDaoImpl();
        Userinfo userinfo = new Userinfo("moucong", "0627");
        boolean b = dao.updateUser(userinfo);
        if(b){
            System.out.println("更新成功!");
        }else{
            System.out.println("更新失败!");
        }
    }
    
    @Test
    public void testDeleteUser(){
        boolean b = userinfoDao.deleteUser("moucong");
        System.out.println(b);
    }
    
    @Test
    public void findAll(){
        List<Userinfo> list = userinfoDao.findAll();
        //打印list  第一个位置的  那一组数据中的  用户名
        System.out.println(list.get(0).getUsername());
        //循环的方式,打印所有用户信息
        for(int i =0;i<list.size();i++){
            System.out.println("~~~~~~~~~~~~~~~~~~~~");
            System.out.println("用户编号:"+list.get(i).getUserid());
            System.out.println("用户姓名:"+list.get(i).getUsername());
            System.out.println("用户密码:"+list.get(i).getPwd());
        }
    }
    
    @Test
    public  void  getuser(){
    Userinfo list = userinfoDao.getuser("moucong");
    System.out.println("用户编号:"+list.getUserid());
    System.out.println("用户姓名:"+list.getUsername());
    System.out.println("用户密码:"+list.getPwd());
}*/
    @Test
    public  void findByPage(){
        List<Userinfo> list=userinfoDao.findByPage(2, 2);
        for(int i =0;i<list.size();i++){
            System.out.println("~~~~~~~~~~~~~~~~~~~~");
            System.out.println("用户编号:"+list.get(i).getUserid());
            System.out.println("用户姓名:"+list.get(i).getUsername());
            System.out.println("用户密码:"+list.get(i).getPwd());
        }
    }
    
    
}

 

2017年6月短学期培训代码总结 -----JDBC