package com.javaweb.mvc;

import java.sql.*;

/**
* @author 公共数据访问类
*
* Statement 和 PreparedStatement之间的关系和区别
* 关系:PreparedStatement继承自Statement,都是接口
* 区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高
* 注意:Statement执行SQL语句有SQL注入,一般不使用
*
*/
public class SqlHelper {
private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String dbURL = "jdbc:sqlserver://mssql-rw-cyp_coopbusiness.vip.test.suixinhuan.com;DatabaseName=CYP_CoopBusiness";
private static String userName = "sa";
private static String userPwd = ""; private static Connection getCoonection()
{
Connection conn = null;
try
{
// 加载JDBC驱动
Class.forName(driverName);
// 获取连接
conn = DriverManager.getConnection(dbURL, userName, userPwd);
return conn;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
} /**
* PreparedStatement执行查询操作
* @param SQL
* @param args
* @return
*/
public static ResultSet executeQuery(String SQL, Object[] args)
{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
conn = getCoonection();
ps = conn.prepareStatement(SQL);
// 设置参数
if (args != null && args.length > ) {
for (int i = ; i < args.length; i++) {
ps.setObject(i + , args[i]);
}
}
rs = ps.executeQuery();
return rs;
}
catch(Exception e)
{
e.printStackTrace();
}
finally {
try {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
} /**
* PreparedStatement执行增删改操作
* @param SQL
* @param args
* @return
*/
public static boolean executeUpdate(String SQL, Object[] args)
{
Connection conn = null;
PreparedStatement ps = null;
try
{
conn = getCoonection();
ps = conn.prepareStatement(SQL);
// 设置参数
if (args != null && args.length > ) {
for (int i = ; i < args.length; i++) {
ps.setObject(i + , args[i]);
}
}
int result = ps.executeUpdate(); //返回受影响的行数
if(result > )
return true;
}
catch(Exception e)
{
e.printStackTrace();
}
finally {
try {
if (ps != null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
} /**
* Statement执行查询操作
* @param SQL
* @return
*/
public static ResultSet executeQuery(String SQL)
{
Connection conn = null;
Statement sm = null;
ResultSet rs = null;
try
{
conn = getCoonection();
sm = conn.createStatement();
rs = sm.executeQuery(SQL);
return rs;
}
catch(Exception e)
{
e.printStackTrace();
}
finally {
try {
if (rs != null)
rs.close();
if (sm != null)
sm.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
} /**
* Statement执行增删改操作
* @param SQL
* @return
*/
public static boolean executeUpdate(String SQL)
{
Connection conn = null;
Statement sm = null;
try
{
conn = getCoonection();
sm = conn.createStatement();
int result = sm.executeUpdate(SQL); //返回受影响的行数
if(result > )
return true;
}
catch(Exception e)
{
e.printStackTrace();
}
finally {
try {
if (sm != null)
sm.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}

下面是调用实例:

package com.javaweb.mvc;

import java.util.ArrayList;
import java.util.List;
import java.sql.*; /**
* @author 数据访问类
*
*/
public class ServiceStationDao {
/**
* @return 查询所有服务站
*
*/
public List<ServiceStation> getAll() {
List<ServiceStation> list = new ArrayList<ServiceStation>();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try { // 加载JDBC驱动
// Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 连接服务器和数据库
// String url = "jdbc:mysql://localhost:3306/student?user=root&password=1234";
String url = "jdbc:sqlserver://mssql-rw-cyp_coopbusiness.vip.test.suixinhuan.com;DatabaseName=CYP_CoopBusiness";
String user = "Umanager";
String password = "ASD123asd!1";
String sql = "SELECT ROW_NUMBER() over(order by CreateDate) as RowNum,* FROM T_TRA_ServiceStation WHERE DeleteTag = 0 AND CityCode = ? ORDER BY CreateDate";
conn = DriverManager.getConnection(url, user, password);
ps = conn.prepareStatement(sql);
ps.setString(, "");
rs = ps.executeQuery();
while (rs.next()) {
int RowNum = rs.getInt();
String ID = rs.getString();
String StationName = rs.getString("StationName");
String CityCode = rs.getString("CityCode");
String CityName = rs.getString("CityName");
String StationAddr = rs.getString("StationAddr");
int IsEnabled = rs.getInt("IsEnabled");
String Createor = rs.getString("Createor");
String strCreateDate = rs.getString("CreateDate");
java.util.Date CreateDate = CommonHelper.strToDateLong(strCreateDate); ServiceStation obj = new ServiceStation(RowNum, ID, StationName, CityCode, CityName, StationAddr,
IsEnabled, Createor, CreateDate);
list.add(obj);
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
finally {
try {
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (conn != null)
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
return list;
} /**
* @return 新增服务站
*
*/
public boolean addServiceStation(ServiceStation obj) {
// //方式一
// String SQL = "INSERT INTO dbo.T_TRA_ServiceStation (ID,StationName,CityCode,CityName,StationAddr,Lng,lat,IsEnabled,Createor,DeleteTag,CreateorUser,CreateDate,LastOperName,LastOperUser,LastOperDate)";
// SQL += " VALUES ('598212333755587533', '"+obj.getStationName()+"', '110100', '北京-北京市', '"+obj.getStationAddr()+"', 116.420574, 40.012993, 0, 'System', 0, 'System', '"+CommonHelper.getStringDate()+"', 'zhouruibj', '周锐北京', '"+CommonHelper.dateToStrLong(obj.getCreateDate())+"')";
// boolean result = SqlHelper.executeUpdate(SQL);
//方式二
String SQL = "INSERT INTO dbo.T_TRA_ServiceStation VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
Object[] args = new Object[];
args[] = CommonHelper.getCard() + CommonHelper.getCard();
args[] = obj.getStationName();
args[] = "";
args[] = "北京-北京市";
args[] = obj.getStationAddr();
args[] = 116.420574;
args[] = 40.012993;
args[] = ;
args[] = "System";
args[] = ;
args[] = "System";
args[] = CommonHelper.getStringDate();
args[] = "zhouruibj";
args[] = "周锐北京";
args[] = CommonHelper.dateToStrLong(obj.getCreateDate());
boolean result = SqlHelper.executeUpdate(SQL, args);
return result;
} /**
* @return 删除服务站
*
*/
public boolean deleteServiceStation(String ID)
{
String SQL = "DELETE FROM T_TRA_ServiceStation WHERE ID = ?";
Object[] args = new Object[];
args[] = ID;
boolean result = SqlHelper.executeUpdate(SQL, args);
return result;
}
}

java 访问数据库公共类的更多相关文章

  1. JavaSE学习总结(九)—— Java访问数据库(JDBC)

    一.JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java ...

  2. Java访问数据库Mysql

    一.概述 本文主要介绍Java接连数据库的基本方法和步骤,并对其中的几个要点进行简要说明. 二.数据库访问步骤 在Java中连接数据库进行的访问主要有以下几个步骤: 加载数据库驱动 注册数据库驱动 建 ...

  3. oracle 事务简介,锁的概念,java访问数据库注意事项

    java链接oracle和连接其他数据库一样有两种方式:1 桥接 jdbc-obdc2 jbdc insert语句一次插入大量数据 insert into table (列1,列2,列3) selec ...

  4. java访问数据库步骤详解

    eg1: public static void main(String[] args) throws ClassNotFoundException, SQLException { //第一步:加载JD ...

  5. java访问数据库被拒绝,不能连接数据库ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    错误原因:mysql数据库只允许本地ip访问: 解决方法:修改mysql表设置所有ip都可以访问: 登录数据库 使用以下命令: use mysql; grant all privileges on * ...

  6. java 访问数据库

    Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);//依据不同数据库,加载不同驱动 String url = “jdbc:sq ...

  7. 三国武将查询系统 //Java 访问 数据库

    import java.awt.*; import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event ...

  8. java访问数据库的sql

    drop database if exists STOREDB;create database STOREDB;use STOREDB; create table CUSTOMERS ( ID big ...

  9. Java课程设计---数据库工具类

    接下来看看传统的查询方式(一个完整的查询) package com.java.mysql; import java.sql.Connection; import java.sql.DriverMana ...

随机推荐

  1. [2019HDU多校第四场][HDU 6617][D. Enveloping Convex]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6617 题目大意:给出一凸包\(P\),求最小的与\(P\)相似且对应边平行的多边形,使得题目给出的\( ...

  2. adb连接各模拟器端口

    天天模拟器 adb connect 127.0.0.1:6555 网易MuMu adb connect 127.0.0.1:5555

  3. 03_mysql-python模块, linux环境下python2,python3的

    ---恢复内容开始--- 1.Python2 正常 [root@IP ~]# pip install mysql-python DEPRECATION: Python 2.7 will reach t ...

  4. Nginx:Nginx概要

    简介 nginx是俄罗斯开源的HTTP和代理服务,也可以作邮件服务器. 核心功能: 1.正向代理:客户机的请求先到达nginx,再由nginx代理访问互联网资源 2.反向代理:客户机请求互联网,到达n ...

  5. jQuery.map(arr|obj,callback)

    jQuery.map(arr|obj,callback) 概述 将一个数组中的元素转换到另一个数组中.广州大理石机械构件 作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换 ...

  6. 049_指定目录路径,脚本自动将该目录使用 tar 命令打包备份到/data 目录

    #!/bin/bash[ ! -d /data ] && mkdir /data  #确保有此目录[ -z $1 ] && exit   #为空不需要打包if [ -d ...

  7. date/clock/hwclock/cal

    date 显示日期与时间 date +%Y/%m/%d/%H:%M 2018/10/08/17:35 格式化输出 时间的设置 查看时区 date -R 时间戳转化 time1=$(date +%s - ...

  8. [Luogu] 兽径管理

    题面:https://www.luogu.org/problemnew/show/P1340 题解:https://www.zybuluo.com/wsndy-xx/note/1153773

  9. 【概率论】3-7:多变量分布(Multivariate Distributions Part II)

    title: [概率论]3-7:多变量分布(Multivariate Distributions Part II) categories: Mathematic Probability keyword ...

  10. Driver对 (一对两对的对):specific/mini VS general

    老是听说miniport,port,在这里算是搞清楚了.mini就是specific(特殊)的意思.在微软的驱动层次里面,最底层的一般都是比较特殊的,但是为了满足系统的可拓展.可维护.通用等要求,微软 ...