小编use*_*666的帖子

在JUnit中测试JDBC查询

我只是想知道,测试JDBC相关方法的最佳方法是什么?如添加用户,禁止用户等

(使用JUnit)

我应该将所有的void方法设置为布尔值,如果它们有效则返回true,如果它们没有则返回false,并在JUnit测试中相应地断言这些值?

这只是找到最佳实践的一般问题.

谢谢!

java testing junit jdbc

5
推荐指数
1
解决办法
3504
查看次数

只需添加一个外键SQL

我正在尝试向我的 user_info 表添加外键约束,这是我的用户表 (user_id) 中的主键:

ALTER TABLE user_info
ADD CONSTRAINT fk_userID
FOREIGN KEY (user_id)
REFERENCES users(user_id);
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

Error starting at line 26 in command:
ALTER TABLE user_info
ADD CONSTRAINT fk_userID
FOREIGN KEY (user_id)
REFERENCES users(user_id)
Error report:
SQL Error: ORA-02298: cannot validate (CLAYBANKS.FK_USERID) - parent keys not found
02298. 00000 - "cannot validate (%s.%s) - parent keys not found"
*Cause:    an alter table validating constraint failed because the table has
           child records.
*Action:   Obvious
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sql oracle foreign-keys

3
推荐指数
1
解决办法
1万
查看次数

java.lang.NumberFormatException:对于输入字符串:""解析字符串表达式

我正在尝试解析字符串表达式(即"6 + 10*2-5")并使用for-case语句将答案计算为double.但是我收到错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:470)
    at java.lang.Integer.parseInt(Integer.java:499)
    at Calculator.random(Calculator.java:50)
    at Calculator.main(Calculator.java:210)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

public static double random(String exp) {
    double primeResult = 0;
    for (int i=0; i<exp.length();i++) {
        double left = Integer.parseInt(exp.substring(0,i));
        double right = Integer.parseInt(exp.substring(i+1,i+2));
        switch(exp.charAt(i)) {
            case '*':
            primeResult = left * right;
            break;
        case '/':
            primeResult = left / right;
            break;
        case '+':
            primeResult = left + right;
            break;
        case '-':
            primeResult = left - right;
            break; …
Run Code Online (Sandbox Code Playgroud)

java for-loop case

1
推荐指数
1
解决办法
2014
查看次数

在Java中设置用户注册

我正在尝试用Java设置用户注册应用程序.这是我当前的代码(产生错误)

import java.util.ArrayList;

public class Registration {

    private static ArrayList<String> userlist = new ArrayList<String>();


    public static void requestRegistration(String username, String password, String f_name, String l_name, String email)
    {
        userlist.add(username, password, f_name, l_name, email);
    }
Run Code Online (Sandbox Code Playgroud)

此代码无法运行,因为您无法向数组添加多个参数.我在想我的数组列表应该是一个String数组而不仅仅是String.有任何想法吗?

java arraylist

1
推荐指数
1
解决办法
989
查看次数

在oracle/JDBC中对主键进行排序

所以我有代码:

public void addUser( 
            String username, String password,
            String f_name, String l_name, String email) 
    {
        try 
        {
            //conn.setAutoCommit(false); 
            pstmnt = conn.prepareStatement("INSERT INTO users VALUES (?,?,?,?)");
            pstmnt.setString(1, "user_id_increment.nextval");
            pstmnt.setString(2, username);
            pstmnt.setString(3, password);
            pstmnt.setInt(4, 0);

            pstmnt.execute();
Run Code Online (Sandbox Code Playgroud)

在OraclebI中有序列:

--Auto incrementing the user_id
CREATE SEQUENCE user_id_increment
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 20;
Run Code Online (Sandbox Code Playgroud)

但是,我在eclipse中得到了异常:

Error: ORA-01722: invalid number
Run Code Online (Sandbox Code Playgroud)

我以为调用序列name.nextval会给我序列中的下一个值,当插入任何其他整数时,setString会起作用.

有任何想法吗?

java oracle jdbc sequence

1
推荐指数
1
解决办法
882
查看次数

用户登录JDBC后屏蔽用户名

所以我在这里有代码将我的用户名参数值发送到我的index.jsp欢迎页面:

response.sendRedirect("index.jsp?username=" + username);
Run Code Online (Sandbox Code Playgroud)

该名称显示在我的index.jsp页面中,其中包含:

<%= "Welcome " + request.getParameter("username")%>
Run Code Online (Sandbox Code Playgroud)

但是,URL显示的信息是我不想要的:

http://localhost:8088/Trading_Platform_Web/index.jsp?username=ClayBanks1989
Run Code Online (Sandbox Code Playgroud)

任何想法如何掩盖这个?

此外,更希望仅显示我的数据库中的名字.但我们可以专注于手头的任务.

java oracle login jdbc getparameter

1
推荐指数
1
解决办法
196
查看次数

从登录参数创建用户对象

我正在尝试在用户登录后使用所有用户字段创建用户对象,以便我可以从用户的类中检索任何给定的属性.这是User类.

public class User  {

private String username;
private String password;
private String f_name;
private String l_name;
private String email;
private String dob;
private int user_id;

public User(){}

public User(String username, String password)
{
    this.username = username;
    this.password = password;
}

public User(String username, String password, String f_name, String l_name, String email, String dob, int user_id)
{
    this.f_name = f_name;
    this.l_name = l_name;
    this.username = username;
    this.password = password;
    this.email = email;
    this.dob = dob;
    this.user_id = user_id;
}
Run Code Online (Sandbox Code Playgroud)

我有所有领域的getter和setter.所有用户字段也存储在Oracle数据库中. …

java servlets jdbc

1
推荐指数
1
解决办法
5088
查看次数

javascript onclick功能放大文字

我不知道为什么,但我似乎无法让这个工作.

这是我放大字体的功能.

<script type="text/javascript">
    function growText() {
        var text = document.getElementById("t_left_text");
        text.font-size=22px;        
</script>
Run Code Online (Sandbox Code Playgroud)

这就是我所说的

<div id="t_left" onclick="growText()">
    <br />
    <p id="t_left_text">Mountains are beautiful land structures <br /> that are a result of plate tectonics.</p>
    <br />
</div>
Run Code Online (Sandbox Code Playgroud)

html javascript onclick

0
推荐指数
1
解决办法
1561
查看次数

减去方法返回错误的答案

出于某种原因,当我在这里测试我的"100-50-40"时,我得到"60"而不是"10".所有其他组合都有效,例如"10 + 20"和"40-20".当我尝试连续减去多个数字时,会出现问题.有任何想法吗?

public double add(String exp){
        String left = "";
        String right = "";
        double leftValue = 0;
        double rightValue = 0;
        double answer = 0;

    for(int i=0;i<exp.length();i++)
    {
        if(exp.charAt(i)=='+')
        {
            right = exp.substring(i+1, exp.length());
            leftValue = subtract(left);
            rightValue = add(right);
            answer = leftValue + rightValue;
            return answer;
        }   
        else
        {
            left = left + exp.substring(i,(i+1));

        }
    } // End for loop
    answer = subtract(exp);
    return answer;

} // End add method

//guaranteed there are no addition operators in …
Run Code Online (Sandbox Code Playgroud)

java methods add subtraction

0
推荐指数
1
解决办法
181
查看次数

使用数组列表进行Junit测试

我有一个方法设置为添加用户ArrayList,并返回false添加相同的用户:

public boolean addUser(K pass, V user)
{
    if (username.contains(user))
    {
        return false;
    }
    else
    {
        password.add(pass);
        username.add(user);
        size++;
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个JUnit测试,assertFalse(true)因为这是我的方法在添加两个具有相同名称的用户时返回的:

@Test
public void testAddingTwoOfTheSameUserToArrayList() {
    User<String, String> user1 = new User<String, String>();
    user1.addUser("password", "SpeedinDave");
    user1.addUser("password", "SpeedinDave");
    assertFalse(true);
}
Run Code Online (Sandbox Code Playgroud)

但是,测试总是错误(红色条).有任何想法吗?

java junit arraylist

0
推荐指数
1
解决办法
1261
查看次数

写入多个文件而不复制代码Java

当我将用户添加到数组列表时,我有这个代码写入文件.代码工作正常:

public void writeToFile(String content)
    {
        try {
            File file = new File("H:/JavaWorkspace/TradingPlatformProject/User_Report.txt");

            if (!file.exists()) {
                file.createNewFile();
            }
            FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(content + "\n" );

            bw.close();
            logger.info("Recorded to User Activity file");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当用户执行不同的操作时(例如,请求权限升级),我想写入单独的文件.有没有办法可以写入新文件"UserRequests.txt"而不复制此代码?

java file-io

0
推荐指数
1
解决办法
164
查看次数

在Java String中的算术表达式中添加多个操作数

到目前为止,我有这个解析两个不同的代码 字符串 操作数加倍并将它们加在一起

如何修改它以便它可以添加任意数量的 字符串 操作数?

double addMultipleDigits(String exp)
    {
        ArrayList<Double> wholeExpression  = new ArrayList<Double>();
        double answer = 0;
        for(int i=0;i<exp.length();i++)
        {
          if(exp.charAt(i)=='+')
          {
            answer=Integer.parseInt(exp.substring(i-1, i)) + Integer.parseInt(exp.substring(i+1, i+2));
            wholeExpression.add(answer);
            System.out.println(wholeExpression.get(0));

          }         
        }
        return answer;
    }
Run Code Online (Sandbox Code Playgroud)

java arrays for-loop if-statement

-1
推荐指数
2
解决办法
423
查看次数