‘壹’ java与sql连接
1、创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
2、 patat.setInt(1,id) 将第一个参数id设置为java给定int 值。
3、在PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
4、ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推
5、以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值
‘贰’ java与sql server 安装问题
select a.月, sum(b.值) as 小计
from tablename as a, tablename as b
where b.月 >= a.月 - 2 and b.月 <= a.月
group by a.月
‘叁’ 用java编写防止SQL注入!求java高手指点!问题解决后,一定提高悬赏!
SQL注入无非就是把对单引号和双"-"进行转换。
最好不要拼装SQL语句,以使用参数化的sql或者直接使用存储过程进行数据查询存取。
‘肆’ 请问java中用string拼SQL如何转义单引号
用replaceAll替换v1,v2即可。具体写法如下
v1=v1.replaceAll("'","''");
v2=v2.replaceAll("'","''");
就是把一个单引号替换成两个单引号。
‘伍’ 比如,java格式是studentId在拼装sql语句中怎么才能变成student_id
String sql = "select student" + "_id from students " ;
楼上说得对,用字符串拼接就好了。
‘陆’ mybatis select怎么拼接sql java
可以使用<sql>元素将你要拼接的sql语句写好,再用<include>元素把sql语句拼接进来。另外<where>、<set>、<for>、<if>等都可以动态拼接sql语句。
‘柒’ java导出报表70多个字段sql比较复杂,有没有什么好的实现工具,能保证报表速度(排除sql外)
您好,用SSAS吧,都有.
我们公司系统是这样实现的.
1.用一个函数得到一个明细表,该明细表包括用户感兴趣的各个维度,并且该函数的参数是用户感兴趣的查询条件.
2.按用户要求先将用户需要的维度列出来,比如说按时间断,按商品类型,按门店,地区等等.然后给每一种方式在第1步的基础上动态生成SQL语句.至于交叉,就要先从第一步中获取交叉值列表,比如说按地区交叉,则先从第一步的表中将所有的地区查出,再用case when生成动态的行列转换语句.
3.一般来说,用前两步就已经能达到用户的要求,我们公司还有一个数据分析的图形化工具,也是在第一步的基础上,由用户自定义维度和深度的,实现方法就不知道了,应该是mdx来的
简单举个例子,比如说要对公司销售数据进行统计,维度包括 时间,地区,商品品牌,查询销量,销售金额
那可以用一个函数 fn_getSales(beginday,endday,area,matgroup),四个参数由用户在界面上选择或输入,函数从销售明细表中返回一个表,包含 时间(day),区域(area),商品品牌(brand),销量(digit),销售金额(totalmoney)的明细数据表.
统计的话,比如说要按商品品牌分组,那只要生成动态语句:
select matgroup,sum(digit),sum(totalmoney) from fn_getSales(beginday,endday,area,matgroup) group by matgroup即可.
如果要按地区进行交叉,按商品品牌分组的统计数据,则先取得地区列表
select area from fn_getSales(beginday,endday,area,matgroup) group by area
将得到的area记录下来,到一个数组,或到一个临时表都行
然后拼装行列转换的SQL语句
select matgroup,
sum(case 地区1 then digit else 0 end) as 地区1销量,
sum(case 地区1 then totalmoney else 0 end) as 地区1销售金额,
sum(case 地区2 then digit else 0 end) as 地区2销量,
sum(case 地区2 then totalmoney else 0 end) as 地区2销售金额,
....循环将所有的地区这样列出
from fn_getSales(beginday,endday,area,matgroup)
这样就得到了每一种商品在每个地区的销量和销售金额分布情况
如果这种东西写多了你就会发现完全可以将拼装方法固定下来,都是有规律的,你可以写一个专门用于拼装SQL的类,这时候就会很容易了。
‘捌’ java中SQL拼接的问题
//既然你说有可能不拼接,直接不拼接是无法实现的可以换一种思路,就是全部查询,比如,你不想加proviceCd=”“的判断,可以让他全部查询出来,因为不加条件就是全盘检查,使用模糊查询,让条件 like ‘%’ ,”%“代表任意长度任意字符,所以都符合条件,不会排除任何一个其他项目。希望这个思路能帮到你,如果不行我也没办法了。
String sql = select * from intern t WHERE name like '?' and institute like '? 'and gender like '?' and majorCd like '?' and provinceCd like '?';
PreparedStatement pstmt = null;
int status = -1;
try {
pstmt = conn.prepareStatement(sql);
if(name==null)
{
pstmt.setString(1, %);
}
else
{
pstmt.setString(1, name);
}
/*
其他条件判断,
*/
status = pstmt.executeUpdate();
if (status > 0) {
System.out.println("成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBResources.resource(conn, pstmt);
}
‘玖’ java与sql怎么实现对接
设置 Classpath JDBC 驱动程序并未包含在 Java SDK 中。因此,如果要使用该驱动程序,必须将 classpath 设置为包含 sqljdbc.jar 文件。如果 classpath 缺少 sqljdbc.jar 项,应用程序将引发“找不到类”的常见异常。 sqljdbc.jar 文件的安装位置如下: <安装目录>\sqljdbc_<版本>\<语言>\sqljdbc.jar 下面是用于 Windows 应用程序的 CLASSPATH 语句实例: CLASSPATH =.;%ProgramFiles%\sqljdbc_1.2\chs\sqljdbc.jar 设置SQL Server服务器 我使用的是SQL Server 2005标准版SP2,这些都默认即可,一般不用配置。如果需要配置端口请看下面。 1、“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server 配置管理器”→“SQL Server 2005 网络配置”→“MSSQLSERVER 的协议” 2、如果“TCP/IP”没有启用,右键单击选择“启动”。 3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433。 4、重新启动SQL Server或者重启计算机。 建议重启电脑。 在Eclipse中测试 1、打开Eclipse,“文件”→“新建”→“项目”→“Java 项目”,项目名为Test 2、在Eclipse中,选择“窗口”→“首选项...”→“Java”→“已安装的 JRE”,选择已安装的 JRE,点击“编辑”→“添加外部”,选择%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar 3、在Test项目的“JRE 系统库”中可以看见sqljdbc.jar,如果没有可以右键单击项目Test→“构建路径”→“配置构建路径...”→“Java 构建路径”→“库”→“添加外部 JAR...”,选择%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar 4、编写Java代码,如下: import java.sql.*; public class Test { public static void main(String[] srg) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=test"; //连接服务器和数据库test String userName = "sa"; //默认用户名 String userPwd = "123456"; //安装sql server 2005时的密码 Connection dbConn; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful! } catch (Exception e) { e.printStackTrace(); } } } 来源:考试大-计算机等级考试