用java代码实现查询数据库

首先我们第一步要在虚拟机或者本地构建一个数据库(“如何在虚拟机上安装MYSQL在上一篇讲过”)

#登陆
 mysql -uroot -pok
#创建mydemo数据库
create database mydemo;
#使用数据库;
use mydemo;
#建表
create table userinfos(userid int primary key not null auto_increment,
username varchar(20)not null,
birthday date not null,pwd varchar(255));

为表添加数据

我是通过SQLyog导入数据内容

首先创建一个数据表

用java代码实现查询数据库_第1张图片

 另存为csv文件格式,再通过SQLyog导入到userinfos表格

用java代码实现查询数据库_第2张图片

创建完毕之后再打开idea

在编写Java代码之前要写一个driver.properties配置文件用来存放连接数据库必要的连接池

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://"数据库所在的IP地址"/mydemo1
username=“MySQL用户名”
password=“MySQL密码”

连接数据库

/**
* 负责产生数据库连接
*/
public class BaseDAO {

    private static String URL;
    private static String USERNAME;
    private static String PASSWORD;
    private static String DRIVER;
    private  static Connection con;
    static {
    LoadDriver();
    }

    private static void LoadDriver() {
        try{
        //加载文件位置
        String path = URLDecoder.decode(BaseDAO.class.getResource("/driver.properties").getPath(),"utf-8");
        //根据文件位置加载配置文件内容
        Properties prop=new Properties();
        prop.load(new FileInputStream(path));
        //根据文件中key的名称获取数据并填充本类的四个属性
        DRIVER=prop.getProperty("driver");
        URL=prop.getProperty("url");
        USERNAME=prop.getProperty("username");
        PASSWORD=prop.getProperty("password");
    } catch (IOException e) {
            e.printStackTrace();
        }
    }
protected   BaseDAO(){}
    /**
     *数据库的连接
     * @return
    */
    public static Connection getConnection(){
        if (con==null){
            try {
                Class.forName(DRIVER);
                con= DriverManager.getConnection(URL,USERNAME,PASSWORD);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return con;
    }

构建实体类

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 *实体类
 */
 @Data//get/set方法
@NoArgsConstructor//无参构造器
@AllArgsConstructor//全参构造器
@Builder//语法糖格式构造实体对象
public class UserInfos {
    private long userid;
    private String username;
    private Date birthday;
    private String pwd;
}

 进行增删改查等操作

public class UserinfosDAO extends BaseDAO {
    private PreparedStatement pstat;
    private ResultSet rs;
    //针对增删改查
    public void updata(String sql,Object[] params){
        try {
            pstat=getConnection().prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                pstat.setObject(i+1,params[i]);
            }
            pstat.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //针对查询
public ResultSet query(String sql,Object[] params){
    try {
        pstat= getConnection().prepareStatement(sql);
        for (int i = 0; i < params.length; i++) {
            pstat.setObject(i+1,params[i]);
        }
        rs=pstat.executeQuery();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return rs;
}

   // 将信息导入表中
public List change(String sql,Object[] params){
        ResultSet rs=query(sql,params);
        List users=new ArrayList<>();
    try {
        while (rs.next()){
            UserInfos us=UserInfos.builder()
                    .userid(rs.getLong("userid"))
                    .username(rs.getString("username"))
                    .birthday(rs.getDate("birthday"))
                    .pwd(rs.getString("pwd"))
                    .build();
            users.add(us);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return users;
}

    //查询所有信息
public  List findAll(){
    String sql = "select * from userinfos";
    return change(sql,new Object[]{});
}
//通过用户密码查询信息
public  UserInfos login(String username,String pwd){
        String sql = "select * from userinfos where username=? and pwd=?";
        List uss=change(sql, new Object[]{username,pwd});
        return uss.isEmpty()?null:  uss.get(0);
}
//通过id查询信息
public UserInfos  findById(long id){
    String sql = "select * from userinfos while userid=?";
    List uss=change(sql, new Object[] {id});
    return uss.isEmpty()?null:  uss.get(0);
}
}

测试通过用户密码查询信息

public static void main(String[] args) {
        System.out.println(new UserinfosDAO().login("dpjbms", "6317"));
    }

结果如下:

用java代码实现查询数据库_第3张图片

 

你可能感兴趣的:(java,数据库,mysql)