大家好,今天小编关注到一个比较有意思的话题,就是关于java语言sql的问题,于是小编就整理了5个相关介绍Java语言sql的解答,让我们一起看看吧。
- Java Web开发中,业务逻辑写在SQL里好还是代码里好呢?有什么建议吗?
- JavaEE后台开发过程中,为什么会有慢SQL问题?如何解决?
- java.sql.SQLException: Wrong number of parameters是什么意思,求大神解决,就是修改内容的时候报异常?
- java计算金额是放在内存中计算还是在sql中计算好呢?
J***a Web开发中,业务逻辑写在SQL里好还是代码里好呢?有什么建议吗?
目前能想到的场景里 只有统计报表系统 部分报表聚合逻辑适合写在sql中 开发效率较写在中间层要高 大部分报表可以做到sql查询所见即所得。但是 要求研发有很强的集合概念 熟悉库表结构 sql语法 和 各种sql方言
其他场景 例如 各个业务线比入订单流程 等 数据库的作用还是回归存储 比较好 其他的逻辑控制等防在中间层比较好
SQL做些基本操作就可以了,业务判断还是要在代码中实现,但在做报表的时候,按照在代码中用增删改查来操作,会存在大量的查询和更新,这是极其耗时的,应该尽可能用一条SQL去完成,同时还要注意性能优化。
如果是小项目,业务层写在存储过程中也无妨,如果是大型项目,劝你还是封装起来写代码里,***设大型项目的业务层写在存储过程中,抛开性能不说,后期维护起来豪不夸张的说就三个字:要你命
关于这个问题应该分场景,不能一概而论。中小项目推荐使用存储过程解决大部分业务,代码量少,方便维护。大型项目涉及到分布式,缓存等等,考虑到数据库的开销就不建议太过依托数据库处理了,因为大并发下数据库处理复杂业务根本处理不过来。
J***aEE后台开发过程中,为什么会有慢SQL问题?如何解决?
我昨天刚好碰到一个问题,应用服务器隔一小段时间就自动重启,最后才定位到是慢查询的问题,生产环境停摆了半天!
慢查询:超过指定时间的SQL查询。
慢查询的危害:轻者影响整个系统性能,重者直接导致服务重启或死机。
开始慢查询记录日志:使用set global slow_query_log=on;开启慢查询日志记录。
然后使用show variables like 'slow%';查找慢查询相关情况,除了能看到slow_query_log=on;还有slow_query_log_file用来记录慢查询的文件!
使用show variables like 'long%';查看慢查询的时间定义为多少?|long_query_time|0.01|(以秒为单位)。
慢查询原因和解决方案:
①,数据库自身原因:内存爆满,发生死锁,服务器卡死等。
②,数据库表设计问题:表中数据量过大,关键字段没有加索引,索引列有大量空等。
j***a.sql.SQLException: Wrong number of parameters是什么意思,求大神解决,就是修改内容的时候报异常?
报错是错误的参数数量 expected 2, was given 3 Query 需要2个插值,但是在Query中给了3个插值
SQL语句怎么设置性别只为男或女?
楼上说的答非所问啊,人家是建表,你给个查询出来
create table 学生表
(
学号 char(5) not null primary key,
姓名 varchar(10) not null,
性别 char(2) default '男' check (性别 in ('男','女'))
)
其中default '男' 就是默认为男
j***a计算金额是放在内存中计算还是在sql中计算好呢?
以前做电网项目计算都是放存储过程中计算,后来搞金融类要求在代码中处理。现在主要是因为开发人员的sql功底没以前的扎实,以前都是四五个dba在审查优化,现在开发优化一个人,怕以后出事没人搞得定,感觉sql计算效率很高,代码的话效率低点,但逻辑开发看明白就能上手改,容易维护点。当然我说的都是偏传统项目
一般一条sql能一次做完的事情不用两条,以前有个哥们写在程序里很忙,我只让他用一条sql处理,速度提升几个数量级。sql在数据库中的执行是经过优化的,而且在数据库执行对连接池开销会有一定的降低
建议放在内存计算,首先sql不支持复杂的计算方式,以后产品需求有变动,你不可能每次去修改sq
然后内存计算的效率远大于sql,一般大型的应用瓶颈都在sql层,dba不会让你瞎搞sql语句,会造成sql慢查的
第三,一般计算都需要留一下快照或者相关日志,以确保计算的准确性或者追溯问题,放在代码层容易实战
到此,以上就是小编对于j***a语言sql的问题就介绍到这了,希望介绍关于j***a语言sql的5点解答对大家有用。