当前位置:首页 » 存储配置 » jfinalmysql存储过程

jfinalmysql存储过程

发布时间: 2022-07-17 10:41:20

❶ jfinal怎么连接mysql

先创建个jdbc.properties
在里面写上连接数据库的信息

不写jdbc.properties的话 直接把连接数据库所需的参数写进去也行

❷ jfinal中能不能使用mysql自定义函数

jfinal 是直接将 sql 扔给 JDBC 执行的,所以终极回答是,只要是 JDBC 支持,那 jfinal 就支持。

❸ jfinal中动态sql是一般是怎么使用的

动态sql一般用在存储过程中,可以在存储过程中使用DDL或DML语句,如创建删除操作。 语法:execute immediate 'DDL或DML语句'

❹ 求助java调用MYSQL存储过程的问题

importjava.sql.CallableStatement;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.Types;
/*
*对应的存储过程
DROPPROCEDUREIFEXISTS`pro_num_user`;
delimiter;;
CREATEPROCEDURE`pro_num_user`(INuser_namevarchar(10),OUTcount_numINT)
READSSQLDATA
BEGIN
SELECTCOUNT(*)INTOcount_numFROMtab_userWHERE'name'=user_name;
END
;;
delimiter;
*/
publicclassTest{

publicstaticfinalStringDRIVER_CLASS="com.mysql.jdbc.Driver";
publicstaticfinalStringURL="jdbc:mysql://127.0.0.1:3306/test";
="root";
="acbee";
publicstaticvoidmain(String[]args)throwsException{
test1();
test2();
}

publicstaticvoidtest1()throwsException
{
Class.forName(DRIVER_CLASS);
Connectionconnection=DriverManager.getConnection(URL,USERNAME,PASSWORD);
Stringsql="{CALLpro_num_user(?,?)}";//调用存储过程
CallableStatementcstm=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();
}

publicstaticvoidtest2()throwsException
{
Class.forName(DRIVER_CLASS);
Connectionconnection=DriverManager.getConnection(URL,USERNAME,PASSWORD);
Stringsql="{CALLpro_number(?,?,?)}";//调用存储过程
CallableStatementcstm=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 存储过程

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();

}
}

❻ jfinal 插入数据时,怎么使用mysql的UUID

update test set id = UUID();MYSQL默认值设置UUID函数实际其函数除TIMESTAMP外都 MYSQL默认值目前能数或者CURRENTTIMESTAMP
需要实现UUID默认值功能则该表INSERT触发器实现:

update test set id = UUID();
create TRIGGER test_insert
AFTER INSERT ON test
FOR each ROW
BEGIN
update test set id = UUID();
end;
般主键id都用AUTO_INCREMENTuuid()适合做主键

❼ 用Jfinal 获取MySQL的Year类型,为什么会带上日期

jdbc 对于 mysql 的 year 类型处理比较诡异,这个在 jfinal 开发之初就发现过,所以不建议使用这个类型,可以使用 integer 类型代替它,省心省力。
最后补充一下,除了 blob、clob这两种类型之外,jfinal 对所有jdbc返回的数据都未经过任何加工或者转换,都是原封不动地转交给了开发者,所以这种类型相关的问题,直接参考 jdbc 对相关数据库字段类型的官方文档即可。
jfinal 不方便干预这个行为,因为不同的数据库支持不同的数据类型,而且jdbc对其也有不同的转换规则,开发者的习惯也不同,所以原封不动地将数据转交给开发者是比较好的选择。

❽ jfinal怎么查询存储过程

您好,我在别的论坛也看到您的问题,很高兴为您解答: 仔细跑了一遍,其实不用那么复杂,你写一个全局handler就OK了! 在nextHandler.handle(target, request, response, isHandled); 前处理request,后处理response!

热点内容
android怎么改 发布:2024-10-07 22:24:13 浏览:863
我的世界ec服务器消失了 发布:2024-10-07 21:48:30 浏览:661
pythonziptodict 发布:2024-10-07 21:36:09 浏览:790
linux操作系统教程 发布:2024-10-07 21:16:54 浏览:280
摩托音响怎么配置 发布:2024-10-07 21:12:37 浏览:348
本田思域哪个配置好 发布:2024-10-07 21:04:11 浏览:347
算法期末试卷 发布:2024-10-07 20:51:04 浏览:808
编译期错误提示 发布:2024-10-07 20:07:23 浏览:297
阿里云服务器打开慢 发布:2024-10-07 20:06:33 浏览:578
磁存储行业的前景 发布:2024-10-07 20:01:29 浏览:550