当前位置: 首页 > news >正文

做网站设计抬头营销咨询

做网站设计抬头,营销咨询,家装公司简介,网络舆情事件文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …

文章目录

    • properties文件
    • 连接池
    • service层实现类
    • dao层实现类
    • dao层实现类

事务和连接池

连接池类:
创建线程池静态常量,用于放连接。
创建Properties静态常量,用于解析properties文件
静态代码块中,解析properties文件,将解析结果用于创建连接池
连接方法:用线程获取连接,若没有,从连接池中拿一个连接,放到线程中去
释放连接方法:将线程变量清除,去除事务,连接放到连接池中

service层实现类
从连接池中获取一个连接,这个连接是在线程中
设置事务(自动提交为false)
获取两个dao,两个dao都是操作同一个连接
提交事务
释放连接

dao层减钱、加钱

properties文件

driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
username=root
password=root
initialSize=10
maxActive=20
minIdle=5
maxWait=5000

连接池

package com.aistart.tech.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;public class JdbcPoolUtil {private static ThreadLocal<Connection> threadLocal = new ThreadLocal<>();private static final Properties info = new Properties();private static DataSource dataSource = null;
//    private static Connection connection = null;static {try {info.load(JdbcPoolUtil.class.getClassLoader().getResourceAsStream("com/aistart/tech/config/druid.properties"));} catch (IOException e) {throw new RuntimeException(e);}//数据库连接池应该也同时被创建try {dataSource = DruidDataSourceFactory.createDataSource(info);} catch (Exception e) {throw new RuntimeException(e);}}public static Connection getConnection() throws SQLException {Connection connection = threadLocal.get();if (connection==null){connection = dataSource.getConnection();threadLocal.set(connection);}return connection;}public static void freeConnection(){Connection connection = threadLocal.get();if (connection!=null){try {//把线程变量清除threadLocal.remove();//恢复原来的状态connection.setAutoCommit(true);connection.close();} catch (SQLException e) {throw new RuntimeException(e);}}}}

service层实现类

package com.aistart.tech.servcice.impl;import com.aistart.tech.dao.IAccuntDao;
import com.aistart.tech.dao.impl.AccuntDaoImpl;
import com.aistart.tech.entity.Accunt;
import com.aistart.tech.servcice.AccountService;
import com.aistart.tech.utils.JdbcPoolUtil;import java.sql.Connection;
import java.sql.SQLException;public class AccountServiceImpl implements AccountService {IAccuntDao accuntDao = new AccuntDaoImpl();@Overridepublic int getBalance(int id) {return 0;}@Overridepublic boolean transferMoney(Accunt accunt1, Accunt accunt2,int money) {Connection connection = null;try {//从数据库连接池拿出来一个连接connection = JdbcPoolUtil.getConnection();connection.setAutoCommit(false);accuntDao.subMoney(accunt1.getId(),money);accuntDao.addMoney(accunt2.getId(),money);connection.commit();System.out.println("service的conn"+ connection.getAutoCommit());} catch (Exception e) {try {connection.rollback();} catch (SQLException ex) {throw new RuntimeException(ex);}throw new RuntimeException(e);}finally {JdbcPoolUtil.freeConnection();}return false;}
}

dao层实现类

package com.aistart.tech.dao.impl;import com.aistart.tech.dao.IAccuntDao;
import com.aistart.tech.utils.JdbcPoolUtil;import java.sql.Connection;
import java.sql.SQLException;public class AccuntDaoImpl implements IAccuntDao {@Overridepublic int subMoney(int id, int money) {Connection connection = null;if (connection == null) {try {connection = JdbcPoolUtil.getConnection();System.out.println("这是dao层的connection"+connection.getAutoCommit());} catch (SQLException e) {throw new RuntimeException(e);}}return 0;}@Overridepublic int addMoney(int id, int money) {return 0;}
}

dao层实现类

package com.aistart.tech.dao.impl;import com.aistart.tech.dao.IAccuntDao;
import com.aistart.tech.utils.JdbcPoolUtil;import java.sql.Connection;
import java.sql.SQLException;public class AccuntDaoImpl implements IAccuntDao {@Overridepublic int subMoney(int id, int money) {Connection connection = null;if (connection == null) {try {connection = JdbcPoolUtil.getConnection();System.out.println("这是dao层的connection"+connection.getAutoCommit());} catch (SQLException e) {throw new RuntimeException(e);}}return 0;}@Overridepublic int addMoney(int id, int money) {return 0;}
}
http://www.hengruixuexiao.com/news/11535.html

相关文章:

  • 韩国漫画漫免费观看免费网站标题优化排名
  • m开头的网站开发工具网站点击量统计
  • 定制管理系统软件windows优化大师兑换码
  • 办公用品网站建设网络广告策划书范文
  • 千素网站建设做个网站
  • 果蔬网站规划建设方案私人浏览器
  • 便民网站开发北京seo公司wyhseo
  • 招聘网站套餐费用怎么做分录百度一下知道首页
  • 青岛网站制作计划百度免费注册
  • 网站开发需求分析参考文献网络营销服务有哪些
  • 门户网站建设存在的问题如何营销推广
  • 网站做弹窗广告吗惠州seo怎么做
  • 武汉市网站建设企业邮箱申请
  • 青岛建设官方网站郑州网站建设专业乐云seo
  • 黄埔网站建设中山口碑seo推广
  • phython 做的网站巩义网络推广外包
  • 莘县建设局网站百度广告商
  • 平台设计方法站长工具seo综合查询可以访问
  • 平台制作网站公司公司推广
  • 购物网站seo搜索引擎前期分析今日头条郑州头条新闻
  • 福利博客wordpress主题班级优化大师官方网站
  • 张店网站制作价格低推广引流
  • 小公司如何做网站隔离百度关键词首页排名服务
  • 河北网站建设公司排名2021年年度关键词
  • 网站营销网络舆情案例分析
  • 如何将图片插入网站网络推广专员是干什么的
  • 设置网站404淘宝运营培训多少钱
  • 深圳的网站建设公司哪家好nba最新消息
  • 怎么利用公网做网站免费广告推广平台
  • 代做动画毕业设计的网站网站快速上排名方法