Java整理5

1、连接池

(1)创建连接池对象 druid
	DruidDataSource datasource=new ruidDataSource();
(2)设置连接池参数[必须/非必须]
	必须:连接数据库驱动类的全限定符[注册驱动]  url、user、password
	datasource.setUrl("jdbc:mysql://localhost:3306/atxxx");
	datasource.setUsrname("root");
	datasource.setPassword("root");
	datasource.setDruidclassName("com.mysql.cj.jdbc.Driver");
(3)获取连接
	[DruidPooled] Connection connection=dataSource.getConnection();
	数据库操作
(4)回收连接
	connection.close();    归还连接池

2、软编码

配置文件   ______.properities
key=value 形式且key固定命名
driverClassName=com.mysql.cj.jdbc.Driver
username=root
password=root
url=jdbc:mysql://localhost:3306/atxxx

@test
Public void testsoft(){
	(1)读取外部配置文件 Properties
		Properties pro =new Properties();   //src下的文件可以直接使用类加载器提供的方法读文件     			
											//DruidUsePart.class  反射技术
		InputStream ips=DruidUsePart.class.getClassLoader().getResourceAsStream("____.properties");
		pro.load(ips);
	(2)使用连接池的工具类的工程模式创建连接池
		DataSource datasource=DruidDataSourceFactory.createDataSource(pro);
	(3)获取连接     同上
	(4)回收连接     同上
}

3、线程本地变量

ThreadLocal  可以为同一个线程存储共享变量
		get()获取		set()设置		remove()移除
声明线程:
	Private static ThreadLocal(<Connection>) tl=new ThreadLocal();
获取连接:
	if(tl.get()==null){
		Connection connection=datasource.getvonnection();
		tl.set(connection);	
	}else{
		Connection connection=tl.get();
	}
回收连接:
	Public static freeconnection() throws SQLException{
		Connection connection=cl.get();
		if(connection!=null){
			tl.remove();
			connection.setAutoCommit(true);
			connection.close();
		}	
	}

4、整理

(1)注册驱动
(2)获取连接
(3)编写sql语句结构
(4)创建Statement
(5)占位符赋值
(6)发送sql语句
(7)结构解析
(8)回收资源
(1)(2)(8)工具类封装   
(3)(4)(5)(6)(7)应用层封装BaseDao

5、可变参数当数组使用

下标从1开始
Public int executeUpdate(String sql,Object ...params){
	for (int i =1;i<=params.length;i++)
		preparedstatement.setObject(i,params[i-1]);
	int rows =preparedstatement.executUpdate();
	//判断是不是事务,如果是则此处不回收连接
	if(connection.getAutoCommit()){
		jdbcUtils.freeConnnection();
	}
	preparedstatement.close();
}

6、反射

调用类的无参构造函数创建对象
	T t=clazz.newInstance();
反射给对象的属性值赋值
	Filed field=clazz.getDeclaredFiled(propertyName);
	field.setAccessible(true);  //打破私有属性不可设置的限制
	field.set(t,value);
	String propertyName=metadata.getColumnLable(i);
	Object value=resultSet.getObject(i);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值