本文目录一览:
- java 怎么调用mysql 存储过程
- 一个关于java调用mysql 存储过程的问题
- java语言调用mysql存储过程(需要获取到存储过程中的out 变量),
- 求助JAVA调用MYSQL存储过程的问题
- 如何将一个java对象保存到数据库中?比如一个Map对象保存到mysql数据库的一个字段中???
- 在MySQL中使用java存储图像问题,怎么解决
java 怎么调用mysql 存储过程
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
/*
* 对应的存储过程
DROP PROCEDURE IF EXISTS `pro_num_user`;
delimiter ;;
CREATE PROCEDURE `pro_num_user`(IN user_name varchar(10) ,OUT count_num INT)
READS SQL DATA
BEGIN
SELECT COUNT(*) INTO count_num FROM tab_user WHERE 'name'=user_name;
END
;;
delimiter ;
*/
public class Test {
public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
public static final String USERNAME = "root";
public static final String PASSWORD = "acbee";
public static void main(String[] args) throws Exception {
test1();
test2();
}
public static void test1() throws Exception {
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_num_user(?,?)}"; //调用存储过程
CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm
cstm.setString(1, "myd"); //存储过程输入参数
//cstm.setInt(2, 2); // 存储过程输入参数
cstm.registerOutParameter(2, Types.INTEGER); // 设置返回值类型 即返回值
cstm.execute(); // 执行存储过程
System.out.println(cstm.getInt(2));
cstm.close();
connection.close();
}
public static void test2() throws Exception {
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_number(?,?,?)}"; //调用存储过程
CallableStatement cstm = connection.prepareCall(sql); //实例化对象cstm
cstm.setInt(1, 2); // 存储过程输入参数
cstm.setInt(2, 2); // 存储过程输入参数
cstm.registerOutParameter(3, Types.INTEGER); // 设置返回值类型 即返回值
cstm.execute(); // 执行存储过程
System.out.println(cstm.getInt(3));
cstm.close();
connection.close();
}
}
一个关于java调用mysql 存储过程的问题
在存储过程中如果有查询结果集,在Java中执行存储过程后,应使用其父接口Statement
的getResultSet()
方法获取查询结果集,此方法返回ResultSet
。如你上面若想获取存储过程中查询结果集应如下:
ResultSet rs = cst.getResultSet();
以下遍历此rs
即可...
java语言调用mysql存储过程(需要获取到存储过程中的out 变量),
用getObject
方法:
Object getObject(int parameterIndex) throws SQLException
以 Java 编程语言中 Object
的形式获取指定参数的值。如果值为 SQL NULL,则驱动程序返回一个 Java null。
此方法返回一个 Java 对象,其类型对应于使用 registerOutParameter
方法为此参数注册的 JDBC 类型。通过将目标 JDBC 类型注册为 java.sql.Types.OTHER
,可以使用此方法来读取特定于数据库的抽象数据类型。
参数:
parameterIndex
- 第一个参数是 1,第二个参数是 2,依此类推
返回:
- 保存 OUT 参数值的
java.lang.Object
抛出:
SQLException
- 如果parameterIndex
无效;如果发生数据库访问错误,或者在关闭的CallableStatement
上调用此方法
求助JAVA调用MYSQL存储过程的问题
书上说的太复杂了而且不易理解,楼上的复制粘贴的我看不懂估计你更看不懂,我就简单说吧:
比如我们要执行MySQL中的student
表,执行一条查询语句select * from student
。
Java中写一个实体类Student
,包含所有student
表中的所有属性,如name
、age
、score
等。
选择JDBC的数据库沟通方式,建立Connection
、PreparedStatement
。
Connection
中写数据库名、驱动名、用户名、密码。
建立String
类型sqlStr
中写入SQL语句select * from student
。
调用prepareStatement
的query
方法将sqlStr
作为参数传过去;就好了。
query
方法会返回一个ResultSet
类型的结果集,拿到它就成功了。
如何将一个java对象保存到数据库中?比如一个Map对象保存到mysql数据库的一个字段中???
我学习Java还没那么深入,不过我想可以保存一个字段名,用的时候getString()
出来,然后Class.forName("获取的字段")
,回答不对见谅…………。
在MySQL中使用java存储图像问题,怎么解决
有两种实现思路:
- 数据库中只存储图片文件路径,将图片存储到指定位置,需要使用该图片时先从数据库读取路径,再根据路径获取图片(推荐,常用实现方案)。
- 将图片转换成字符串,将字符串存入数据库,需要使用时从数据库中读取出字符串再转回图片文件(不推荐,性能低下)。
附:图片与字符串互相转换的代码
import java.io.*;
public class ImageUtils {
/**
* 图片转字符串
*
* @param filePath 文件路径
* @return
* @throws IOException
*/
public static String image2String(String filePath) throws IOException {
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath))) {
byte[] data = new byte[bis.available()];
bis.read(data);
// base64编码
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
return encoder.encode(data);
}
}
/**
* 字符串转图片
*
* @param imageStr 图片字符串
* @param filePath 生产图片路径
* @throws IOException
*/
public static void string2Image(String imageStr, String filePath) throws IOException {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] data = decoder.decodeBuffer(imageStr);
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath))) {
bos.write(data);
bos.flush();
}
}
// 测试
public static void main(String[] args) throws IOException {
String str = image2String("G:/test/t2.jpg");
// 运行完成后在对应路径下查看是否生成了新图片
string2Image(str, "G:/test/t3.jpg");
}
}