zoukankan      html  css  js  c++  java
  • 第一次随笔,记录课设遇到的问题

    目前是一个大二的小渣渣,课设选的是在线考试系统,在这次课设之中遇到了极其多的问题,大部分都是因为自己的基础不够扎实导致的,所以学好一门语言的基础非常的重要呐,话不多说,一一把问题记录一下

    1.这是基础差的第一个表现,足足浪费了我一天时间,找遍了各种博客,我要执行的是一个sql语句,把一个数组循环插入

    第一我遇到的问题都是sql语句insert into 表明(列明)values (要插入的内容)  数组的要怎么插入遇到了问题,不像一般数组直接输入,数组的插入有一定的格式,正确的格式是‘“+keep[i][j]+”’  就是 ' “ +数组 + “'

    然后我又遇到了一些问题,空指针的问题,我又反复的检查了一天,最后一点点排查,发现又是语句这里出现问题了,博客翻了几十篇,最后给出的结论是,尝试在数组后加一个.trim(),把多余的空格等都去掉。最后

    成功插入   preparedStatement = conn.prepareStatement("insert into TestSet(course,sinc,persin,mulc,permul,judge,perjd,program,perpro,totaltime)values('java',"+Integer.parseInt(value[i][0].trim())+","+Integer.parseInt(value[i][1].trim())+","+Integer.parseInt(value[i][2].trim())+","+Integer.parseInt(value[i][3].trim())+","+Integer.parseInt(value[i][4].trim())+","+Integer.parseInt(value[i][5].trim())+","+Integer.parseInt(value[i][6].trim())+","+Integer.parseInt(value[i][7].trim())+",120)");  最后这串代码是这样。

    2.再记录一下我遇到的至今仍未解决的问题,这个问题大概是,我在一个类设置了get和set数组,然后在get数组的时候,返回了一个空指针。后面查了很多博客,大概得出的结论是,数组在传递的过程传递的是地址,传递过去会变成空地址吧,这个是目前仍然没有解决的问题

    3.现在记录一些比较基础的知识,例如如何连接jdbc等等

    连接jdbc,执行sql语句,你要导入相应的jar包,等等我会再详细的说明,假设现在已经导入了jar包了,那现在还需要什么?

    需要一个连接来连接数据库,Connection conn;   需要你数据库的地址路径,要不然哪里知道你到底要连到哪里去 String url:"jdbc:sqlsever://localhost:1433;DatabaseName=Student_test;"

    声明你要执行的sql语句 Statement stmt     一个放数据库查询结果的结果集ResultSet rs         

    这一切都可以之后,可以运行驱动conn=DriverManager.getConnection(url,"sa","123"); 后面两个是你数据库的名字和密码不要弄错。这样就可以连接jdbc,后面执行sql语句我会附上代码

     public class getDataFromDatabase {

    PreparedStatement preparedStatement = null;
    Connection conn;//连接
    Statement stmt;//用于执行不带参数的简单sql语句
    ResultSet rs;//表示一个数据库查询的结果集
    String url="jdbc:sqlserver://localhost:1433;DatabaseName=ExamOnline;";//连接数据库
    public getDataFromDatabase(){}
    public String getDatabySql(String sql,String item) {

    try {
    conn=DriverManager.getConnection(url,"sa","123");//登录
    stmt =conn.createStatement();//差不多类似于在数据库中输入相关sql语句
    rs=stmt.executeQuery(sql);//用来执行select语句,几乎是使用最多的sql语句
    if(rs!=null) {
    System.out.println(rs.toString());
    return rs.toString();
    }
    while(rs.next()) {
    return (rs.getString(item).trim());
    }
    if(rs!=null) {
    rs.close();
    rs=null;
    }
    if(stmt!=null) {
    stmt.close();
    stmt=null;
    }
    if(conn!=null) {
    conn.close();
    conn=null;

    return "";
    }
    catch(SQLException e) {
    e.printStackTrace();
    System.out.println("数据库连接失败");
    }
    return "";


    }
    public String getlinefromdatabase() {
    try {
    conn=DriverManager.getConnection(url,"sa","123");//登录
    stmt =conn.createStatement();//差不多类似于在数据库中输入相关sql语句
    preparedStatement = conn.prepareStatement("select sinc from TestSet ");
    preparedStatement.executeUpdate();
           }catch(SQLException e) {
            e.printStackTrace();
            System.out.println("连接失败");
           }
    return preparedStatement.toString();
    }

    执行:

     void isLogin() {
    // TODO Auto-generated method stub
    String pswdDatabase=String.valueOf(database.getDatabySql("select PSWD from S where SNAME='李明'","PSWD"));//从数据库中获取
    userID=database.getDatabySql("selsect SNO from S where SNAME='李明'","SNO");

    可以参考

    其次,除了这个方法,还有用PreparedStatement来查询的方法

     具体如上.。个人总结主要记住三个点,第一个url,String url=“jdbc:sqlsever://localhost:1433;databaseName-ExamOnline”  一个点Class.forName("com.microsoft.sqlsever.jdbc.SQLServerDriver"); 一个conn=DriverManager.getConnecion(url,name,password)便可自己打出执行的sql语句

    现在来聊聊我数据库连jdbc的过程

    主要是参考了b站一个视频.

  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/donxiao-999/p/12658998.html
Copyright © 2011-2022 走看看