
第一、利用FileInputStream.read(byte[])方法把内容读取到byte[]数组中,比如图片是由二进制数组成的,就可以定义为一个字节数组。
第二、在数据库中对应记录字段应该设置为blob类型,这样就能够顺利保存了
事例代码如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ")
stmt.setBytes(1, yourByteArray)
其中,yourByteArray是你读出来的字符数组。
mysql数据库SELECT id FROM good WHERE id<10
id
1
2
3
4
5
6
7
8
9
SELECT GROUP_CONCAT(id) FROM good WHERE id<10
1,2,3,4,5,6,7,8,9
进行了行转列
利用java的split对逗号进行分割,输出的就是数组。
方法二
查询出来存入list中,然后循环list,给数组赋值就行
一个表里的某条数据还是一个表里某个字段下所有的数据?看看是不是你要的效果。
public class TestColumnToArray {
public static void main(String[] args) {
TestColumnToArray instance = new TestColumnToArray()
instance.connDB()
List<Map<String, Object>>list = instance.findColumn()
Object[] data = instance.getData(list, "。。。")//。。。换成要查得字段
for (Object object : data) {
System.out.println(object)
}
}
private Object[] getData(List<Map<String, Object>>list, String column) {
Object[] data = new Object[list.size()]
for (int i = 0i <list.size()i++) {
data[i] = list.get(i).get(column)
}
return data
}
private void connDB() {
try {
Class.forName("com.mysql.jdbc.Driver")
} catch (ClassNotFoundException e) {
System.err.println("驱动加载失败!")
}
}
private List<Map<String, Object>>findColumn() {
List<Map<String, Object>>list = new ArrayList<Map<String,Object>>()
Connection conn = null
Statement stmt = null
ResultSet rs = null
String sql = "select * from 。。。"//。。。换成表名
try {
conn = DriverManager.getConnection("。", "。。", "。。。")//。换成url。。换成数据库账户。。。换成数据库密码
stmt = conn.createStatement()
rs = stmt.executeQuery(sql)
while (rs.next()) {
Map<String, Object>map = new HashMap<String, Object>()
map.put("。。。", rs.getInt(1))//。。。换成列名
map.put("。。。", rs.getInt(2))
map.put("。。。", rs.getInt(3))
list.add(map)
}
} catch (SQLException e) {
System.err.println("数据库读取失败!")
} finally {
try {
if (rs != null) rs.close()
if (stmt != null) stmt.close()
if (conn != null) conn.close()
} catch (SQLException e) {}
}
return list
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)