会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 196楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 198楼

public class StatmentTest {
    /**
     * 添加用户
     */
    private  Connection connection = null;
    private Statement statement = null;
    public void insertUsers(String username,int userage){
        try{
            create();
            //定义需要执行的SQL语句
            String sql = "insert into users values(default,'"+username+"',"+userage+")";
            //执行SQL,返回boolean类型值,如果SQL有结果集返回,那么返回值为true,如果没有返回值则返回false
            boolean execute = statement.execute(sql);
            System.out.println(execute);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            close();
        }
    }
    /**
     * 修改用户信息
     */
    public void updateUsers(int userid,String username,int userage){
        try{
            create();
            //定义SQL语句
            String sql = "update users set username = '"+username+"',userage="+userage+" where userid="+userid;
            //执行SQL语句
            int i = statement.executeUpdate(sql);
            System.out.println(i);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            close();
        }
    }
    private void close(){
        JdbcUtils.closeResource(statement,connection);
    }
    private void create(){
        //获取Connection对象
        connection = JdbcUtils.getConnection();
        //获取Statement对象
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
//可以这么写吗?运行成了,就是不知道有没有别的问题。


JAVA 全系列/第三阶段:数据库编程/JDBC技术 201楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 203楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 204楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 205楼

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;

/**
 * Druid连接池测试类
 */
public class DruidTest {
    public static void main(String[] args) throws Exception {
        //获取读取druid配置的字节输入流
        InputStream is = DruidTest.class.getClassLoader().getResourceAsStream("druid.properties");
        //创建Properties对象
        Properties pos = new Properties();
        //加载配置文件
        pos.load(is);
        //获取连接池对象
        DataSource ds = DruidDataSourceFactory.createDataSource(pos);

        //获取连接
        Connection connection = ds.getConnection();
        System.out.println(connection);
    }
}

运行结果:

十月 29, 2022 7:13:09 下午 com.alibaba.druid.pool.DruidDataSource error

严重: {dataSource-1} init error

java.sql.SQLException: come.musql.jdbc.Driver

at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:683)

at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1222)

at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:891)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1401)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1397)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:100)

at com.Han.DruidTest.main(DruidTest.java:25)

Caused by: java.lang.ClassNotFoundException: come.musql.jdbc.Driver

at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)

at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:264)

at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:681)

... 6 more


Exception in thread "main" java.sql.SQLException: come.musql.jdbc.Driver

at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:683)

at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1222)

at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:891)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1401)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1397)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:100)

at com.Han.DruidTest.main(DruidTest.java:25)

Caused by: java.lang.ClassNotFoundException: come.musql.jdbc.Driver

at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)

at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:264)

at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:681)

... 6 more


Process finished with exit code 1


JAVA 全系列/第三阶段:数据库编程/JDBC技术 207楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 208楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 209楼

package com.mgj;

import java.sql.Date;

/**
 * 实体类,存放Employees表中的数据
 * */
public class Employees {
    int  employees_id ;
    String first_name;
    String last_name;
    String email;
    String phone_number;
    Date hire_date;
    String job_id;
    float salary;

    public int getEmployees_id() {
        return employees_id;
    }

    public void setEmployees_id(int employees_id) {
        this.employees_id = employees_id;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone_number() {
        return phone_number;
    }

    public void setPhone_number(String phone_number) {
        this.phone_number = phone_number;
    }

    public Date getHire_date() {
        return hire_date;
    }

    public void setHire_date(Date hire_date) {
        this.hire_date = hire_date;
    }

    public String getJob_id() {
        return job_id;
    }

    public void setJob_id(String job_id) {
        this.job_id = job_id;
    }

    public float getSalary() {
        return salary;
    }

    public void setSalary(float salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employees{" +
                "employees_id=" + employees_id +
                ", first_name='" + first_name + '\'' +
                ", last_name='" + last_name + '\'' +
                ", email='" + email + '\'' +
                ", phone_number='" + phone_number + '\'' +
                ", hire_date=" + hire_date +
                ", job_id='" + job_id + '\'' +
                ", salary=" + salary +
                '}';
    }
}

----------------------------------------------------
package com.mgj;

import java.net.DatagramPacket;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 * 获取结果集测试类
 * */
public class ResultSetTest {

    /**
     * 查询所有用户
     * */
    public List<Employees> selectEmployeesAll(){

        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        List<Employees> list = new ArrayList<>();
        try {
            //获取数据库连接
            connection = JdbcUtils.getConnection();
            //创建PreparedStatement对象
            preparedStatement = connection.prepareStatement("SELECT DISTINCT * FROM employees where salary>2000 ORDER BY SALARY DESC");
            //执行SQL语句
            resultSet = preparedStatement.executeQuery();
            //操作ResultSet对象获取查询的结果集
            while (resultSet.next()){
                int i = resultSet.getInt("employee_id");
                String str = resultSet.getString("first_name");
                String str2 = resultSet.getString("last_name");
                String str3 = resultSet.getString("email");
                String str4 = resultSet.getString("phone_number");
                Date date = resultSet.getDate("hire_date");
                String str6 = resultSet.getString("job_id");
                float fl = resultSet.getFloat("salary");
                //System.out.println(str+" "+str2+" "+str3+" "+str4+" "+date+" "+str6+"————"+fl);
                //ORM映射处理
                Employees employees = new Employees();
                employees.setEmployees_id(i);
                employees.setFirst_name(str);
                employees.setLast_name(str2);
                employees.setEmail(str3);
                employees.setPhone_number(str4);
                employees.setHire_date(date);
                employees.setJob_id(str6);
                employees.setSalary(fl);
                list.add(employees);

            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {

            JdbcUtils.closeResource(resultSet,preparedStatement,connection);

        }
        return list;
    }
}
-------------------------------------------
package com.mgj;

import java.util.List;

public class Test {


    public static void main(String[] args) {

       /* StatementTest st = new StatementTest();
        st.insertUsers("Mr.Meng_",23);
        st.updateUsers(4,"Mr.Meng",18);
        st.deleteUsersById(1);*/
        /*PreparedStatementTest pst = new PreparedStatementTest();
        //pst.insertUsers("Hello",19);
        //pst.updateUsersById(9,"World",26);
        pst.deleteUsersById(7);*/
        ResultSetTest resultSetTest = new ResultSetTest();
        //resultSetTest.selectEmployeesAll();
        List<Employees> list = resultSetTest.selectEmployeesAll();
        for (Employees employees:list){

            System.out.println(list);

        }
    }
}

老师,我用这种方法查询Employees表中的数据,况且我添加了distinct去重
为什么我拿到的数据全是重复的呢?

QQ截图20221026005458.png

JAVA 全系列/第三阶段:数据库编程/JDBC技术 210楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637