自定义工具类之自制数据库连接工具(一)
2021/12/5 19:48:53
本文主要是介绍自定义工具类之自制数据库连接工具(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、插件实现功能情况
本工具类已经实现MySQL数据的连接和数据库的关闭,并通过线程池进行数据限制。
二、文件组织结构
下图为本工具类的文件预览图
三、maven配置文件pom.xml
下面是本工程文件的依赖库文件
<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <!-- https://mvnrepository.com/artifact/jaxen/jaxen --> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> </dependencies>
四、conn.xml
本文件主要存储连接配置的信息
<connection> <database id="mysql"> <dependencies> <name>driver</name> <value>com.mysql.jdbc.Driver</value> </dependencies> <dependencies> <name>url</name> <value>jdbc:mysql://192.168.130.100:3306/zuoye?useSSL=true&useUnicode=true&characterEncoding=utf-8</value> </dependencies> <dependencies> <name>user</name> <value>root</value> </dependencies> <dependencies> <name>password</name> <value>ok</value> </dependencies> </database> </connection>
五、Conn类
本类主要实现单个数据的连接和释放
Map<String,String>m=null; Connection conn = null;//定义连接 Statement stmt = null;//初始化statement对象 public Connection con(String database_name) throws DocumentException, ClassNotFoundException, SQLException { ConSourse c=new ConSourse(); Map<String, String> m = c.getConInfo_Xml("mysql"); Class.forName(m.get("driver")); conn = DriverManager.getConnection(m.get("url"),m.get("user"),m.get("password"));//连接数据库 stmt = conn.createStatement();//创建一个 Statement 对象 return conn; } public void close(Connection database_connection) throws SQLException { if (database_connection!=null) database_connection.close(); }
六、ConSourse类
本类主要实现数据库的连接数据从conn.xml中读出
//定义XML的读者 static SAXReader reader; //定义文件路径 static Document document; //XML根 static Element root; //连接XML数据库 private static void conXml() throws DocumentException { //实现读者 reader = new SAXReader(); //打开文件路径 document = reader.read(new File("src/main/java/conf/conn.xml")); //获取根 root = document.getRootElement(); } static Map<String, String> getConInfo_Xml(String dataSourceId) throws DocumentException { //实现连接 conXml(); //获取配置信息的根 Element datasource =(Element) root.selectSingleNode("database[@id='" + dataSourceId + "']"); //用图来存储配置信息 Map<String, String> map = new HashMap<>(); //获得配置信息的列表 List<Element> list = datasource.elements("dependencies"); //遍历获取配置信息 for (Element element : list) { //获取配置信息名称 String name = element.elementText("name"); //获取配置信息的值 String value = element.elementText("value"); //将配置信息压入图中 map.put(name, value); } //返回配置信息的图 return map; }
七、mysql_conPool
数据库连接池
private static int POOL_SIZE =5; Connection con=null; public synchronized Connection coonpool(String database_name) throws InterruptedException { if(POOL_SIZE<0){ Thread.sleep(1000); coonpool(database_name); } POOL_SIZE--; Conn c=new Conn(); try { con= c.con(database_name); System.out.println("连接成功"); } catch (DocumentException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException throwables) { throwables.printStackTrace(); } return con; } public synchronized void closepool(Connection con) throws SQLException { POOL_SIZE++; Conn c=new Conn(); c.close(con); System.out.println("数据库已关闭"); }
八、主方法main()
public static void main(String[] args) throws InterruptedException, SQLException { Connection con=null; mysql_conPool p=new mysql_conPool(); con=p.coonpool("mysql"); p.closepool(con); }
这篇关于自定义工具类之自制数据库连接工具(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略
- 2025-01-07一文告诉你IT项目管理如何做到高效