1. jdbc.username=root
  2. jdbc.password=root
  3. jdbc.driver=com.mysql.jdbc.Driver
  4. jdbc.url=jdbc:mysql://mini1:3306/bigdata?useUnicode=true&characterEncoding=UTF-8

注意val后面不能用空格,就因为有空格坑了我两个小时

  1. package my.geomap.servlet;
  2.  
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5.  
  6. import java.io.InputStream;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11. import java.sql.ResultSetMetaData;
  12. import java.sql.SQLException;
  13. import java.util.*;
  14.  
  15. public class JdbcUtil {
  16.  
  17. // 表示定义数据库的用户名
  18. private static String USERNAME ;
  19.  
  20. // 定义数据库的密码
  21. private static String PASSWORD;
  22.  
  23. // 定义数据库的驱动信息
  24. private static String DRIVER;
  25.  
  26. // 定义访问数据库的地址
  27. private static String URL;
  28.  
  29. // 定义数据库的链接
  30. private Connection connection;
  31.  
  32. // 定义sql语句的执行对象
  33. private PreparedStatement pstmt;
  34.  
  35. // 定义查询返回的结果集合
  36. private ResultSet resultSet;
  37.  
  38. static{
  39. //加载数据库配置信息,并给相关的属性赋值
  40. loadConfig();
  41. }
  42.  
  43. /**
  44. * 加载数据库配置信息,并给相关的属性赋值
  45. */
  46. public static void loadConfig() {
  47. try {
  48. InputStream inStream = JdbcUtil.class
  49. .getResourceAsStream("/jdbc.properties");
  50. Properties prop = new Properties();
  51. prop.load(inStream);
  52. USERNAME = prop.getProperty("jdbc.username");
  53. PASSWORD = prop.getProperty("jdbc.password");
  54. DRIVER= prop.getProperty("jdbc.driver");
  55. URL = prop.getProperty("jdbc.url");
  56. System.out.println(prop.entrySet());
  57. } catch (Exception e) {
  58. throw new RuntimeException("读取数据库配置文件异常!", e);
  59. }
  60. }
  61.  
  62. public JdbcUtil() {
  63.  
  64. }
  65.  
  66. /**
  67. * 获取数据库连接
  68. *
  69. * @return 数据库连接
  70. */
  71. public Connection getConnection() {
  72. try {
  73. Class.forName(DRIVER); // 注册驱动
  74. connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); // 获取连接
  75. } catch (Exception e) {
  76. throw new RuntimeException(e.getMessage());
  77. }
  78. return connection;
  79. }
  80.  
  81. /**
  82. * 执行更新操作
  83. *
  84. * @param sql
  85. * sql语句
  86. * @param params
  87. * 执行参数
  88. * @return 执行结果
  89. * @throws SQLException
  90. */
  91. public boolean updateByPreparedStatement(String sql, List<?> params)
  92. throws SQLException {
  93. boolean flag = false;
  94. int result = -;// 表示当用户执行添加删除和修改的时候所影响数据库的行数
  95. pstmt = connection.prepareStatement(sql);
  96. int index = ;
  97. // 填充sql语句中的占位符
  98. if (params != null && !params.isEmpty()) {
  99. for (int i = ; i < params.size(); i++) {
  100. pstmt.setObject(index++, params.get(i));
  101. }
  102. }
  103. result = pstmt.executeUpdate();
  104. flag = result > ? true : false;
  105. return flag;
  106. }
  107.  
  108. /**
  109. * 执行查询操作
  110. *
  111. * @param sql
  112. * sql语句
  113. * @param params
  114. * 执行参数
  115. * @return
  116. * @throws SQLException
  117. */
  118. public List<Map<String, Object>> findResult(String sql, List<?> params)
  119. throws SQLException {
  120. List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  121. int index = ;
  122. pstmt = connection.prepareStatement(sql);
  123. if (params != null && !params.isEmpty()) {
  124. for (int i = ; i < params.size(); i++) {
  125. pstmt.setObject(index++, params.get(i));
  126. }
  127. }
  128. resultSet = pstmt.executeQuery();
  129. ResultSetMetaData metaData = resultSet.getMetaData();
  130. int cols_len = metaData.getColumnCount();
  131. while (resultSet.next()) {
  132. Map<String, Object> map = new HashMap<String, Object>();
  133. for (int i = ; i < cols_len; i++) {
  134. String cols_name = metaData.getColumnName(i + );
  135. Object cols_value = resultSet.getObject(cols_name);
  136. if (cols_value == null) {
  137. cols_value = "";
  138. }
  139. map.put(cols_name, cols_value);
  140. }
  141. list.add(map);
  142. }
  143. return list;
  144. }
  145.  
  146. /**
  147. * 释放资源
  148. */
  149. public void releaseConn() {
  150. if (resultSet != null) {
  151. try {
  152. resultSet.close();
  153. } catch (SQLException e) {
  154. e.printStackTrace();
  155. }
  156. }
  157. if (pstmt != null) {
  158. try {
  159. pstmt.close();
  160. } catch (SQLException e) {
  161. e.printStackTrace();
  162. }
  163. }
  164. if (connection != null) {
  165. try {
  166. connection.close();
  167. } catch (SQLException e) {
  168. e.printStackTrace();
  169. }
  170. }
  171. }
  172.  
  173. public static void main(String[] args) {
  174. JdbcUtil jdbcUtil = new JdbcUtil();
  175. jdbcUtil.getConnection();
  176. try {
  177. List<Map<String, Object>> result = jdbcUtil.findResult(
  178. "select * from t_student", null);
  179. for (Map<String, Object> m : result) {
  180. System.out.println(m);
  181. }
  182. } catch (SQLException e) {
  183. e.printStackTrace();
  184. } finally {
  185. jdbcUtil.releaseConn();
  186. }
  187. }
  188.  
  189. public static JSONArray testqueryCase(String sql) {
  190. JdbcUtil jdbcUtil = new JdbcUtil();
  191. List<Map<String, Object>> result = null;
  192. try {
  193. jdbcUtil.getConnection();
  194. result = jdbcUtil.findResult(sql, null);
  195. } catch (SQLException e) {
  196. System.out.println(e.getMessage());
  197. e.printStackTrace();
  198. } finally {
  199. if (jdbcUtil != null) {
  200. jdbcUtil.releaseConn(); // 一定要释放资源
  201. }
  202. }
  203. JSONArray json = new JSONArray();
  204. JSONObject jo =null;
  205. Set<Map.Entry<String, Object>> entries = null;
  206. Map.Entry<String, Object> next = null;
  207. for(Map<String, Object> a : result){
  208. jo = new JSONObject();
  209. entries = a.entrySet();
  210. next = entries.iterator().next();
  211. jo.put("name", next.getKey());
  212. jo.put("value", next.getValue());
  213. json.add(jo);
  214. }
  215. return json;
  216. }
  217. }

简易web项目jdbcUtil的更多相关文章

  1. .netCore 简易Web 项目

    static async Task Main(string[] args) { var _httpListener = new HttpListener(); _httpListener.Prefix ...

  2. 简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  3. 【Java Web】简易商品信息管理系统——首个Web项目

    正文之前 在学习了一段时间的Java Web的内容之后,当然需要有个项目来练练手,我相信大多数人的首选项目都是信息管理系统吧,所以我选择了商品信息管理系统 目前项目源码已全部上传至GitHub,欢迎大 ...

  4. 使用maven构建web项目(简易版)

    在eclipse中使用maven开发一个web项目 第一步:安装maven:在Windows上安装Maven 中间省略很多步骤....(包括关于eclipse中配置maven) 第二步:不用懂任何ma ...

  5. Pycharm+django新建Python Web项目

    这两天初学Python,首先是学习Python语法有PyCharm就可以运行Console程序了,因为是初学所以,尽量写的比较详细,包括参考的资料地址...   1.下载Python,并安装[本文版本 ...

  6. java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

    答辩每个人的总分为1.5分.每个人主要问3个问题. 开发流程===>系统架构====>项目模块+功能===>项目得失重定向与转发:?九个隐式对象?get与post的区辨:?jsp有静 ...

  7. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  8. 手动搭建简易web框架与django框架简介

    目录 纯手写简易web框架 基于wsgiref模块 动静态网页 简单了解jinja2模块 框架请求流程 python主流web框架 django框架 简介 应用app 命令操作django pycha ...

  9. java Web项目创建之一(普通java web项目的创建与发布)

    1.创建新的web项目 file->new_>Dynamic Web Project(如图) 或file->new->Project->Web->Dynamic W ...

随机推荐

  1. Javakeyword之this

    this的作用: 1) this是当前对象的一个引用.便于对当前对象參数的使用. 2)能够返回对象的自己这个类的引用.同一时候还能够在一个构造函数其中调用还有一个构造函数 this演示样例: publ ...

  2. 原创:微信小程序调用【统一下单】、【支付】、【支付回调】api并处理请求

    1.服务器端使用TP3.2处理(随便写在一个Controller里面) /* 小程序报名,生成订单 */ public function make_order(){ if(IS_POST){ $dat ...

  3. HDUOJ----1166敌兵布阵(线段树单点更新)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. innerHTML和innerText区分

    示例代码:<div id="test"> <span style="color:red">test1</span> test ...

  5. JMeter学习笔记--详解JMeter配置元件

    JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...

  6. RMAN - 发现I/O瓶颈

    大多数操作系统支持异步I/O. 备份到磁盘,异步I/O是一个优势,因为一个服务器进程同时可以执行多个I/O操作:同步I/O必须等上一个I/O操作完成才可以执行下一个I/O操作. 初始化参数disk_a ...

  7. Android中实现下拉刷新

    需求:项目中的消息列表界面要求实现类似sina微博的下拉刷新: 思路:一般的消息列表为ListView类型,将list加载到adapter中,再将adapter加载到 ListView中,从而实现消息 ...

  8. Spring +quartz获取ApplicationContext上下文

    job存在数据库中,能够进行动态的增增删改查,近期遇到了怎样获取ApplicationContext上下文的问题.解决的方法例如以下 applicationContext-quartz.xml < ...

  9. 最常用的五类CSS选择器

    一些新手朋友对选择器一知半解,不知道在什么情况下运用什么样的选择器,这是一个比较头疼的问题,针对新手朋友,对CSS选择器作一些简单的说明,希望能对大家的学习工作有一定的帮助,更多的CSS知识请参考We ...

  10. bug list

    机型: Samsung Galaxy S GT-I9000 版本: 2.2.1bug: Couldn't create directory for SharedPreferences file xxx ...