数据库
文章平均质量分 58
aitangyong
成长最快、最好的方式就是交流和总结!
展开
-
SQL或HQL预编译语句,能够防止SQL注入,但是不能处理%和_特殊字符
最近项目在做整改,将所有DAO层的直接拼接SQL字符串的代码,转换成使用预编译语句的方式。个人通过写dao层的单元测试,有以下几点收获。dao层代码如下//使用了预编译sqlpublic List selectConfigBySuffix(String suffix){ String hql = "from IndvConfigModel where configKey原创 2014-09-04 14:58:28 · 4133 阅读 · 0 评论 -
修改Oracle数据库表的主键对应列的数据类型
我们产品从SPC100升级到SPC200的时候,由于数据库表列的数据类型发生了改变,需要写SQL脚本,完成数据库的升级。需要将表T_MOBILE_INDVCONFIG的主键列id从varchar2(100),改成number(17)。可以参考如下SQL:--将原来的ID列重命名为bak_idALTER TABLE T_MOBILE_INDVCONFIG RENAME COLUMN id TO原创 2015-01-15 21:57:10 · 1802 阅读 · 1 评论 -
java用字符串拼接SQL语句的特殊字符转义问题
在实际的项目开发中,往往会根据用户在界面的文本框中输入的信息,去数据库中做模糊查询。如果使用的是原始的JDBC和SQL,往往需要对用户的输入进行转义,避免生成的sql语法错误,或者防止SQL注入。比如对输入的%和_和',就需要进行转义,因为这3个字符是SQL的特殊字符,如果不处理会导致sql出错或者是查询数据不正确。 假如有这样1个查询请求,模糊查询标题中包含a%b_cc'd的记录原创 2015-01-15 21:47:12 · 20786 阅读 · 0 评论 -
我对autocommit以及select语句是否需要加事务的一点理解
如果开启了autocommit,数据库服务器自动开启事务(每一条sql语句开始执行的时候),自动提交事务(sql语句执行成功),自动回滚事务(sql语句执行失败)。很显然:autocommit没有什么实际意义,如果要使用事务,就必需关闭autocommit,不然每一条sql都是一个独立的事务,而实际上事务包含了一组sql语句。最佳实践:对于DML操作,我们需要显示开始、显示提交或者回滚事务,哪儿怕事务里面只有一条sql语句。我们知道:一个数据库连接可以开启多个数据库事务。至于一个数据库事务里面多次查询结果是原创 2016-01-08 13:17:11 · 16107 阅读 · 2 评论 -
HQL或SQL使用?带来的好处:减少SQL解析时间、降低内存开销、防止SQL注入
以前都我们熟知使用“?”表达式的好处可以减少数据库解析SQL的时间,提高SQL执行效率。然而我们却忽略了,这样做还可以减少数据库和HQL缓存SQL解析计划而使用的内存。所以建议DAO层的代码,都使用预编译语句,降低内存消耗,同时也提高查询效率。原创 2013-12-24 21:57:14 · 3547 阅读 · 0 评论 -
windows下开启mySQL5.7的binlog
windows下开启binlog之后重启mysql服务即可(服务名是MySQL57)有一点需要注意下:my.ini配置文件并不在安装目录下,看原创 2016-11-10 12:59:32 · 6836 阅读 · 2 评论