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

public <T> List<T> select2() {
    String sql = "select * from student";
    return this.select2(sql,null,Student.class);
}
public <T> List<T> select2(String sql,Object[] object,Class<T> clazz) {
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    List<T> list = new ArrayList<>();
    try {
        connection = JdbcUtil.getConnection();
        preparedStatement = connection.prepareStatement(sql);
        resultSet = preparedStatement.executeQuery();
        //获取结果集信息
        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
        while(resultSet.next()){
            //完成ORM处理:通过jdk的反射(Student student = new Student();)
            T bean = clazz.newInstance();
            for (int i = 0; i < resultSetMetaData.getColumnCount(); i++){
                //取得列名
                String column = resultSetMetaData.getColumnName(i + 1);
                //获取列的值
                Object value = resultSet.getObject(column);
                //通过BeanUtil工具类将值当如到对象中
                BeanUtils.setProperty(resultSetMetaData,column,value);
            }
            list.add(bean);
        }
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        JdbcUtil.close(preparedStatement,connection,resultSet);
    }
    return list;
}

image.pngT表示的不就是站位吗,当我给定类型的时候为什么报错,而且我也是按照视频里的敲得

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1262楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1263楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1267楼

package com.bjsxt;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class jdbcTest {
    //定义一个方法,向departments表中添加一条数据
    public void insertDepartments(String department_name,int location_id){

        Connection conn=null;
        Statement state=null;

        try {
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");  //通过反射jar包中的Driver类来获得驱动对象
            //创建链接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf-8","root","root");
            String sql="insert into departments values(default,'"+department_name+"',"+location_id+")";
            state=conn.createStatement();
            int flag=state.executeUpdate(sql);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(state!=null){
                try {
                    state.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }

            }
        }
    }
    public static void main(String[] args) {
        jdbcTest test=new jdbcTest();
        test.insertDepartments("研发部",8);
    }
}

blob.png

 您好老师,按照视频中的步骤向数据库中添加数据报错,这个什么原因呢

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1269楼

哪里错啦

"C:\Program Files\Java\jdk-19\bin\java.exe" "-javaagent:D:\Program Files\IntelliJ IDEA 2022.3.2\lib\idea_rt.jar=1574:D:\Program Files\IntelliJ IDEA 2022.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\hkn\IdeaProjects\jdbcdemo\out\production\jdbcdemo;C:\Users\hkn\IdeaProjects\jdbcdemo\lib\mysql-connector-java-5.1.48.jar itbaizhan.Test

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'valuer(default,'hkn',21)' at line 1

at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2439)

at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:829)

at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:729)

at itbaizhan.StatementTest.insertUsers(StatementTest.java:25)

at itbaizhan.Test.main(Test.java:9)


Process finished with exit code 0


JAVA 全系列/第三阶段:数据库编程/JDBC技术 1270楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1271楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1274楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1275楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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