java字符串拼接问题,求大神讲清楚

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java字符串拼接问题,求大神讲清楚相关的知识,希望对你有一定的参考价值。

先上一个小例子再慢慢问:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class jdbctest
private static String url="jdbc:mysql://localhost:3306/myschool";
private static String user="root";
private static String pwd="root";
private static Connection con=null;
private static Statement stmt=null;
private static ResultSet rs=null;
private static String sql=null;
private static String selkey=null;
public synchronized Connection getConnection()
try
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url, user, pwd);
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();

return con;

public void closeAll()

try
if(rs!=null)
rs.close();

if(stmt!=null)
stmt.close();

if(con!=null)
con.close();

catch (SQLException e)
e.printStackTrace();


public void insertMothod(String sql)
con=getConnection();
try
stmt=con.createStatement();
stmt.execute(sql);
catch (SQLException e)
e.printStackTrace();
finally
closeAll();


public void selMothod(String selkey)
con=getConnection();
try
stmt=con.createStatement();
rs=stmt.executeQuery("'select'"+selkey+"'from stu_info where id=1'");
if(rs!=null)
while(rs.next())
System.out.println(rs.getString(selkey));


catch (SQLException e)
e.printStackTrace();
finally
closeAll();


public static void main(String[] args)
new jdbctest().selMothod("stu_name");


这是一个java连接数据库的小例子,我想问的是如何把selMothod方法中的参数,传递到rs=stmt.executeQuery("'select'"+selkey+"'from stu_info where id=1'");返回的结果集中?我这样写是不对的,求高手指点啊。我只是想让参数和字符串拼接到一起,执行Statement对象的SQL语句传递。求给一个清晰的解答。。。

遇到复杂的拼接建议不要使用Statemente而是使用 java.sql.PreparedStatement这个类 也就是使用占位符来表示举个例子
String sql=“SELECT * FROM table1 where name=? and age=? ”;
PreparedStatement pstmt=conn.prepareStatement(sql) ;
pstmt.setString(1,"张三"); //设置sql里面的第一个 ? String类型
pstmt.setInt(2,23); //设置 sql里面的第二个 ?号,int类型
pstmt.executeQuery();

使用占位符可以减少sql语句发生错误,把需要用变量代替的地方都是用 ? ,然后 setXXX就可以 从 1 开始计数 注意类型
参考技术A rs=stmt.executeQuery("select "+selkey+" from stu_info where id=1 "); 是正解。 参考技术B sql语句有问题,应该是"select "+selkey+" from stu_info where id=1" 这里应该注意有空格 还有就是这些sql语句不用用单引号引起来。你那个在数据库里执行的是这样的语句:
'select' stu_name 'from stu_info where id=1' 这样当然不行 在数据库中就字符串才用单引号引起来

js 如何判断输入字符串是不是换行了?(注意:字符串中无换行符号) 下面看补充例子,求各位大神赐教

<table>
<tr>
<td width="2%" id="td1">davcgavjhafbjhvkadsvsdfvfsfvsfvfsvseeeeee</td>
<td id="td2" width="88%">2</td>
<td id="td3" width="10%">3</td>
</tr>
</table>
js如何判断td1中的字符串是否已换行?

先获得td的行高
然后获得td的实际高度
如果实际高度大于行高,那么就已经换行了~~~
参考技术A 根据换行符号的ascii码,比如这样写,就是换行了,因为在d和f之间,其实隐藏了\r\n
-------------------
<td width="2%" id="td1">davcgavjhafbjhvkadsvsd
fvfsfvsfvfsvseeeeee</td>
-------------------追问

这种方法在不变大小window.width和window.height可行,但如果不同大小或改变浏览器的放大缩小,这里的td的宽就会改变,因此该方法是不是还有待改进呢?

追答

2%的意思,就是根据你的浏览器大小(100%),进行自动绝对大小调整(但相对浏览器大小始终维持2%)
如果你是绝对的大小,单位就应该用像素px

而且你的问题,很奇怪,js判断换行,和td大小的改变,两者一点关联都没有,不清楚你到底想做什么。

以上是关于java字符串拼接问题,求大神讲清楚的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server2000将一列数据拼接成字符串可以用STUFF FOR XML PATH()么

有哪位大神对vs2005环境下的rdl报表了解不?如何在数据集里面动态拼接sql,就像java里面字符串拼接一样

c# 动态创建带字符串拼接的lambda表达式?

求助大神:java 中 现有一个list 要取出list中所有元素拼接成字符串以逗号隔开应该如何做?

js 如何判断输入字符串是不是换行了?(注意:字符串中无换行符号) 下面看补充例子,求各位大神赐教

求帮忙一个java的sql语句拼接,条件是 in 包括!