数据库连接及操作
来源:互联网 发布:河南网络机柜生产厂家 编辑:程序博客网 时间:2024/05/16 06:07
设置静态连接参数,然后设置路径,加载驱动,返回一个连接对象。
package com.weixin.javabean;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException;import java.sql.Statement; public class DBConf { private static final String url = "jdbc:mysql://33333/HAHAH?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"; private static final String name = "com.mysql.jdbc.Driver"; private static final String user = "root"; private static final String password = "123456"; private static Connection conn=null; public static Connection getConn() { try { Class.forName(name); return DriverManager.getConnection(url, user, password); //调用方法返回一个连接对象 } catch (Exception e) { e.printStackTrace(); }return null; } }
数据库操作:主要注意操作对象为harshtable列表,利用迭代进行sql的拼接,i="1',为标志性,使循环执行一次,数据url拼接好后,进行数据库操作,注意try ,catch抓错。注意:只进行了一次数据库连接,只产生了一个数据库连接对象,所有的数据库操作都只利用这一个,
package com.weixin.util;import java.lang.reflect.Field;import java.sql.Connection;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.Arrays;import java.util.Hashtable;import java.util.Iterator;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.MapListHandler;import org.stringtree.json.JSONValidatingWriter;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.weixin.javabean.DBConf;import com.weixin.javabean.UserInfo;public class DBUtil {private static Connection conn = DBConf.getConn();private static Statement stat = null;private static ResultSet rs = null; private static String sql=null; private static Hashtable <String,String>list=new Hashtable<String,String>(); private static Gson gson=new Gson(); /*public static Connection getCon()//需要多个连接对象时 { cout++; if(count%3==0)return conn; else if(count%3==1)return conn1; else if(count%3==2)return conn2; }*//** * 功能:数据库插入操作 * @param ht 存储字段信息的hashtable 存储格式(Hashtable)ht.put(字段名,字段值); * @param tablename 操作的数据库表名 * @return 返回json格式的执行信息 */public static String insert(Hashtable ht, String tablename) {String before_sql, after_sql;before_sql = "insert into " + tablename + "(";after_sql = " values('";int i = 1;for (Iterator iter = ht.keySet().iterator(); iter.hasNext(); i = 0) {String key = (String) iter.next();Object value = ht.get(key);if (i != 1) {before_sql += ",";after_sql += "','";}before_sql += key;after_sql += value;}sql = before_sql + ")" + after_sql + "')";logout.ps.println("insert sql:" + sql);try {stat = conn.createStatement();list.put("errorcode", stat.executeUpdate(sql)+"");list.put("errmsg", "ok");return gson.toJson(list);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace(logout.ps);list.put("errorcode", "-1");list.put("errmsg", e.toString());e.printStackTrace();return gson.toJson(list);}}/** * * 功能:查询数据库 (注意:返回记录哪怕只有一条也是用json数组存放的,即用[]括起来的) * @param ht Hashtable对象,其中存放sql查询条件 * @param tablename 带查询表名 * @return 返回json格式的字符串 */public static String select(Hashtable ht, String tablename) {String sql;sql = "select * from " + tablename;int i = 1;for (Iterator iter = ht.keySet().iterator(); iter.hasNext(); i = 0) {String key = (String) iter.next();Object value = ht.get(key);if (i == 1) {sql += " where ";} else {sql += " and ";}sql += key + "='" + value+"'";}logout.ps.println("select sql:" + sql);try {String json = new JSONValidatingWriter().write(new QueryRunner().query(conn, sql, new MapListHandler()));return json;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace(logout.ps);e.printStackTrace();}return null;}/** * 功能:数据库更新操作 * @param ht 待更新的数据信息,包括查询条件 * @param tablename 操作的数据库表 * @param id 查询条件的字段名 * @return 返回json格式的执行情况 */public static String update(Hashtable ht, String tablename,String id){String before_sql, after_sql, sql;before_sql = "update " + tablename + " set ";after_sql = " where ";int i = 1;for (Iterator iter = ht.keySet().iterator(); iter.hasNext(); ) {String key = (String) iter.next();Object value = ht.get(key);if(key.equals(id)){after_sql+=key+ "='" + value+"'";}else{if (i != 1) {before_sql += " , ";}before_sql += key+ "='" + value+"'";i=0;}}sql = before_sql + after_sql;logout.ps.println("update sql:" + sql);try {stat = conn.createStatement();list.put("errorcode", stat.executeUpdate(sql)+"");list.put("errmsg", "ok");return gson.toJson(list);} catch (SQLException e) {e.printStackTrace(logout.ps);// TODO Auto-generated catch blocke.printStackTrace();list.put("errorcode", "-1");list.put("errmsg", e.toString());return gson.toJson(list);}}/** * @param ht 删除条件 * @param tablename 数据库表名 * @return 返回操作情况 0失败 */public static int delete(Hashtable ht, String tablename){String before_sql, after_sql, sql;sql = "delete from " + tablename + " where ";int i = 1;for (Iterator iter = ht.keySet().iterator(); iter.hasNext();i=0 ) {String key = (String) iter.next();Object value = ht.get(key);if (i != 1) {sql += " and ";}sql += key+ "='" + value+"'";}logout.ps.println("delete sql:" + sql);try {stat = conn.createStatement();return stat.executeUpdate(sql);} catch (SQLException e) {e.printStackTrace(logout.ps);// TODO Auto-generated catch blocke.printStackTrace();return -1;}}/** * 获取表中最大的主键值 * @param tablename 数据库表名 * @param id 主键字段名 * @return 最大的主键值 */public static String getNextID(String tablename,String id) {sql="select MAX("+id+") as "+id+" from "+tablename;logout.ps.println("sql:"+sql);try {String json = new JSONValidatingWriter().write(new QueryRunner().query(conn, sql, new MapListHandler()));logout.ps.println("json:"+json);json=json.replace("[", "");json=json.replace("]", "");Hashtable<String,Double> ht=gson.fromJson(json, Hashtable.class);double d=ht.get(id);logout.ps.println("ht:"+(int)d+"");return (int)d+"";} catch (SQLException e) {e.printStackTrace(logout.ps);// TODO Auto-generated catch blocke.printStackTrace();}return null;}/** * @param sql 查询sql语句 * @return json格式的结果集 */public static String select(String sql) {logout.ps.println("DBUtil seleclt(sql):"+sql);try {String json = new JSONValidatingWriter().write(new QueryRunner().query(conn, sql, new MapListHandler()));return json;} catch (SQLException e) {e.printStackTrace(logout.ps);// TODO Auto-generated catch blocke.printStackTrace();}return null;}/** * @param sql 更新,删除sql语句 * @return 返回操作情况 */public static String update(String sql) {logout.ps.println("user defined update sql:"+sql);try {stat = conn.createStatement();list.put("errorcode", stat.executeUpdate(sql)+"");list.put("errmsg", "ok");return gson.toJson(list);} catch (SQLException e) {e.printStackTrace(logout.ps);// TODO Auto-generated catch blocke.printStackTrace();}return null;}public static void main(String[] args) {Hashtable ht = new Hashtable();String str=select(ht,"BillInfo");str="\"rows\":"+str;System.out.println(str);}}
0 0
- 数据库连接及操作
- 数据库连接及操作
- PHP数据库连接及操作类
- 数据库连接及操作类 ConnDB
- C# Oracle数据库连接及操作
- JDBC操作步骤及数据库连接操作
- JDBC操作步骤及数据库连接操作
- 数据库连接及操作所遇到的问题
- (复习)数据库连接及基本操作
- python实现简单数据库连接及操作
- python mysql数据库连接及基本操作
- Java数据库编程---JDBC操作步骤及数据库连接操作
- 数据库连接操作
- 数据库连接操作
- 数据库连接操作
- ASP常用数据库连接及操作的方法和技巧
- ASP常用数据库连接及操作的方法和技巧
- ASP常用数据库连接及操作的方法和技巧
- 5.4 桶排序
- 如何使用R语言的Boruta包进行特征选择
- httpclient4.1使用详解
- Recursive PLS algorithms for adaptive的简单介绍
- OLLYDBG快捷键和页面布局
- 数据库连接及操作
- 玩的开心
- JDK5新特性之增强for
- Skinned Mesh 原理解析和一个最简单的实现示例
- HDU 1166 敌兵布阵
- 剑指offer 面试题19:二叉树的镜像(leetcode226. Invert Binary Tree) 题解
- 过失集.2016.4.15
- 汉诺塔问题递归解法
- 网易游戏笔试题:编写string类的构造函数、拷贝构造函数、赋值构造函数和析构函数