JAVA WEB中如何让数据库连接对开发人员完全透明?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA WEB中如何让数据库连接对开发人员完全透明?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5837字,纯文字阅读大概需要9分钟。
内容图文
![JAVA WEB中如何让数据库连接对开发人员完全透明?](/upload/InfoBanner/zyjiaocheng/461/78ed447f4d39446889822db09f6f3b8c.jpg)
Customer--model:
package org.smart4j.chapter2.model; /** * Created by sahara on 2016/3/14. */ public class Customer { private long id; private String name; private String contact; private String telephone; private String email; private String remark; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } public String getContact() { return contact; } public void setContact(String contact) { this.contact = contact; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
DatabaseHelper:
package org.smart4j.chapter2.helper; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.smart4j.chapter2.util.PropsUtil; /** * Created by sahara on 2016/3/16. */ public final class DatabaseHelper { private static final Logger LOGGER = LoggerFactory.getLogger((DatabaseHelper.class)); private static final String DRIVER; private static final String URL; private static final String USERNAME; private static final String PASSWORD; private static final QueryRunner QUERY_RUNNER = new QueryRunner(); private static final ThreadLocal<Connection> CONNECTION_HOLDER = new ThreadLocal<Connection>(); static { Properties conf = PropsUtil.loadProps("config.properties"); DRIVER = conf.getProperty("jdbc.driver"); URL = conf.getProperty("jdbc.url"); USERNAME = conf.getProperty("jdbc.username"); PASSWORD = conf.getProperty("jdbc.password"); try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { LOGGER.error("can not load jdbc driver", e); } } public static Connection getConnection() { Connection conn = CONNECTION_HOLDER.get(); if (conn == null) { try { conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); }catch (SQLException e) { LOGGER.error("get connection failure", e); throw new RuntimeException(e); }finally { CONNECTION_HOLDER.set(conn); } } return conn; } public static void closeConnection() { Connection conn =CONNECTION_HOLDER.get(); if (conn != null) { try { conn.close(); } catch (SQLException e) { LOGGER.error("close connection failure", e); throw new RuntimeException(e); }finally { CONNECTION_HOLDER.remove(); } } } public static <T> List<T> queryEntityList(Class<T> entityClass, String sql, Object...params) { List<T> entityList; try { Connection conn = getConnection(); entityList = QUERY_RUNNER.query(conn, sql, new BeanListHandler<T>(entityClass), params); } catch (SQLException e) { LOGGER.error("query entity list failure", e); throw new RuntimeException(e); } finally { closeConnection(); } return entityList; } }
CustomerService:
package org.smart4j.chapter2.service; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Properties; import org.omg.PortableInterceptor.USER_EXCEPTION; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.smart4j.chapter2.model.Customer; import org.smart4j.chapter2.util.PropsUtil; import org.smart4j.chapter2.helper.DatabaseHelper; /** * Created by sahara on 2016/3/14. */ public class CustomerService { private static final Logger LOGGER = LoggerFactory.getLogger((CustomerService.class)); public List<Customer> getCustomerList() { String sql = "SELECT * FROM customer"; return DatabaseHelper.queryEntityList(Customer.class, sql); } public Customer getCustomer(long id) { // TODO return null; } public boolean createCustomer(Map<String, Object> fieldMap) { // TODO return false; } public boolean updateCustomer(long id, Map<String, Object> fieldMap) { // TODO return false; } }
测试过程截图:
JAVA WEB中如何让数据库连接对开发人员完全透明?
标签:
本文系统来源:http://www.cnblogs.com/aguncn/p/5285717.html
内容总结
以上是互联网集市为您收集整理的JAVA WEB中如何让数据库连接对开发人员完全透明?全部内容,希望文章能够帮你解决JAVA WEB中如何让数据库连接对开发人员完全透明?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。