五月二十六日jdbc算法以及数据库
1.在PreparedStatement创建SQL对象后,调用preparedStatement()方法
时,通过占位符?来按照索引进行SQL语句动态执行
通过setString()方法和setInt()方法来为占位符?赋值
String selectSql = "SELECT * FROM student WHERE sNo = ?";
ps.setString(1,"5");//将字符串1传递给第19行sNo参数占位符
2.利用CallableStatement接口实现类创建对象时使用execute方法执行SQL语句
3.CallableStatement cs = conn.prepareCall("{call 存储过程名}");
4.String callSql1 = "{call addStudent{(?,?,?,?,?)}";//?为IN类型的占位符
IN类型占位符在执行SQL语句前需要赋初值
5.String callSql2 ="{call getCount(?)}"//?为OUT类型占位符
6.OUT类型占位符在执行SQL语句前需要赋初值
若不知OUT和INOUT类型参数要进行类型注册:
cs.registerOutParamenter(int index,int sqlType);
getXXX()方法返回类型值
7.带若干参数存储过程
CallableStatement cs = conn.prepareCall("{call 程序过程名("?,?,?,.....")}")
8.带若干参数和返回值参数存储过程
CallableStatement cs = conn.prepareCall("{? = call 程序过程名("?,?,?...")}");
9.获取元数据:获取数据库名称,版本、以及驱动和数据库URL等等
DatabaseMetaData接口利用Connection的getMetaDate()方法创建对象
DatabaseMetaDate dmd = Connection.getMetaDate();
总结:通过PrepareStatement对象动态地通过占位符?来赋值
CalableStatement接口通过Connection对象创建存储过程对象
在本对象中IN和OUT类型参数在执行啥情况语句前必须赋初值
OUT和INOUT类型参数必须注册登录
CallableStatement对象用execute()方法执行SQL语句
DatabaseMeteDate通过Connection对象创建对象来返回元数据信息
LeetCode
算法:求数组最大子序列并输出
利用贪心算法:
class solution{
public List<Integer> ku(int []args){
int sum = 0;
for (int a:args
) {
sum +=a;
}
//第二步:对数组进行排序调用调优算法Arrays.sort(int []a)
Arrays.sort(args);
//第三步:定义最大子序列list
ArrayList<Integer> list = new ArrayList<>();
int n = args.length;//定义数组args长度
int count = 0;//用于求最大子序列和
// 第四步:遍历数组,将最大子序列添加在列表list中与顺序数组子序列比较
for (int i = n-1; i >=0 ; i--) {
list.add(args[i]);//用来返回最大子序列
count += args[i];
if(count>(sum-count)){
break;
}
}
return list;
}
}}
sql语句:将表中男性别改为女性别女性别改为男性别
update salary set sex =if(sex = 'f','m','f');
update salary set set = (case sex when 'f' then 'm' else 'f');
总结:在今天的LeetCode学习中,想过取出最大值来比较,但没有想过子序列用list列表来记录最大子序列
通过Arrays.sort()方法来升序排序,再通过list列表添加子序列,子序列和与数组和差与子序列和比较最后得到list列表
SQL语句中见识到了if语句和casewhen then else语句多表查询
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!