| 
 我现在要用java连接数据库查询这样一个sql  | 
|
| 
 
select * from tablename where id in (list.get(0),list.get(1)…..)
 
改成这样可以吧  | 
|
| 
 可以,用or也可以,我不是问这个关键字,我是想问括号里这个应该怎么写,不可能像这样写….  | 
|
| 
 
string strsql = “select * from tablename where id in (?)”;   
preparedstatement pstmt = conn.preparestatement(strsql); string param=””; for(int i:list){ param+=i+”,”; } param=param.substring(0,param.length()-1); pstmt.setstring(1,param); resultset rs = pstmt.executequery();  | 
|
| 
 但是我list中的元素是Integer类型的,而且表中的id也是bigint,这种方法也是可以的吗  | 
|
| 
 
循环拼sql 语句。 
 | 
|
| 
 
楼主是不会写ResultSet里的数据解析吗。 
 | 
|
| 
 那是什么东西  | 
|
| 
 我也想到该用循环,但是不知道该怎么弄,因为数据类型不统一  | 
|
| 
 
 你先写的试试看,  
 | 
|
| 20分 | 
 既然你能成功用Integer类型取到bigint类型的id,应该就没溢出,这样应该可以,试试咯  | 
| 
 
是的吧地方以后 
 | 
|
| 
 
 for循环 拼接 in后面的SQL。 
 | 
|
| 
 应该输出3个才对,怎么只有一个1  | 
|
| 
 
找不出原因啊,为什么没输出完 
 | 
|
| 
 
如果是拼接字符串呢,应该怎么处理? 
 | 
|
 一直用框架写sql,很久没有这么写了,不敢贸然说,  | 
|
| 
 
楼主,你可以debug一下看看你拼接的sql语句是否有问题,我模拟了一下你的代码
 
class ConnectJDBC{
	public void connectMySql(){
		String url="jdbc:mysql://localhost:3306/test";
		String username="root";
		String password="root";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection con=DriverManager.getConnection(url,username,password);
			PreparedStatement pstmt=con.prepareStatement("select * from userdata where id in(?)");
			String param="1,2,3";
			pstmt.setString(1,param);
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()){
				System.out.println(rs.getInt("id"));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
得到的拼接结果是:select * from userdata where id in(“”1,2,3″”);  | 
|
| 20分 | 
 
楼主 ,你要循环读取list数据拼接sql的话,办法是很多的,我就写了个最容易想到的给你
 
class ConnectJDBC{
	public void connectMySql(){
		List<Integer> list=new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		String str1="select * from userdata where id in(";
		StringBuffer sb=new StringBuffer();
		for(int i=0;i<list.size();i++){
			sb.append(list.get(i)+",");
		}
		String str2=sb.toString();
		str2=str2.substring(0,str2.length()-1);
		String str3=")";
		String sql=str1+str2+str3;
		String url="jdbc:mysql://localhost:3306/test";
		String username="root";
		String password="root";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection con=DriverManager.getConnection(url,username,password);
			Statement stmt=con.createStatement();
			ResultSet rs=stmt.executeQuery(sql);
			while(rs.next()){
				System.out.println(rs.getInt("id"));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
 | 
| 
 
先定义一个String 字符串写sql语句。后者差不多可以调用 
 | 
|