1.CommonUtils
CommonUtils类中两个方法:
l String uuid():生成长度32的随机字符,通常用来做实体类的ID。底层使用了UUID类完成;
l T toBean(Map, Class<T>):把Map转换成指定类型的Bean对象。通常用来获取表单数据(request.getParameterMap())封装到JavaBean中,底层使用了common-beanutils。注意,本方法要求map中键的名称要与Bean的属性名称相同才能完成映射,否则不能完成映射。
/**
* 随机生成32位长的字符串,通常用来做实体类的ID
*/
@Test
public void testUuid(){
String s = CommonUtils.uuid();
System.out.println(s);
}
/**
* 作用:把一个map的数据封装到javabean中
* 要求:map中的key名称与javabean中属性名称相同
*/
@Test
public void testToBean(){
Map<String, Object> map = new HashMap<String, Object>();
map.put("pid", 123);
map.put("pname", "张珊");
map.put("age", 23);
Person p = CommonUtils.toBean(map, Person.class);
System.out.println(p);
}
2.JdbcUtils
JdbcUtils用来获取Connection对象,以及开启和关闭事务。
l Connection getConnection():从c3p0连接池获取Connection对象,所以需要提供c3p0-config.xml配置文件;
l beginTransaction():为当前线程开启事务;
l commitTransaction():提交当前线程的事务;
l rollbackTransaction():回滚当前线程的事务;
l releaseConnection(Connection):如果参数连接对象不是当前事务的连接对象,那么关闭它,否则什么都不做;
/**
* JdbcUtils获取连接
* @throws Exception
*/
@Test
public void testGetConnection() throws Exception{
Connection con = JdbcUtils.getConnection();
System.out.println(con);
JdbcUtils.releaseConnection(con);
System.out.println(con.isClosed());
}
/**
* 与事务相关
*/
public void testTransaction(){
try {
JdbcUtils.beginTransaction();//开启事务
//多次操作
JdbcUtils.commitTransaction();//提交事务
} catch (SQLException e) {
try {
JdbcUtils.rollbackTransaction();//事务回滚
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</default-config>
</c3p0-config>