使用c3p0数据源和spring jdbc实现数据库操作

事务的四大特征:
1. 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。
2. 持久性:当事务提交或回滚后,数据库会持久化的保存数据。
3. 隔离性:多个事务之间。相互独立。
4. 一致性:事务操作前后,数据总量不变

C3P0:数据库连接池技术
步骤:
1. 导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,
不要忘记导入数据库驱动jar包
2. 定义配置文件:
名称: c3p0.properties 或者 c3p0-config.xml
路径:直接将文件放在src目录下即可。

  1. 创建核心对象 数据库连接池对象 ComboPooledDataSource
  2. 获取连接: getConnection

c3p0-config.xml 数据库配置文件


  
  
  	
    com.mysql.jdbc.Driver
    jdbc:mysql:///test?useSSL=false
    root
    li1234
    
    
    
    5
    
    10
    
    3000
  

   
    
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/db3
    root
    root
    
    
    5
    8
    1000
  

编写JDBCUtils工具类获取数据源

public class JDBCUtils {
    private static DataSource ds = null;
    static {
        try {
            //1.导入jar包
            //2.定义配置文件
            //3.加载配置文件
            Properties pt = new Properties();
            pt.load(JDBCUtils.class.getClassLoader().getResourceAsStream("jdbcConfig.properties"));
            //4.获取数据源
            ds = DruidDataSourceFactory.createDataSource(pt);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static DataSource getDataSource(){
        return ds;
    }
}

Spring JDBC
Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
步骤:
1. 导入jar包
2. 创建JdbcTemplate对象。依赖于数据源DataSource
JdbcTemplate template = new JdbcTemplate(ds);

3调用JdbcTemplate的方法来完成CRUD的操作
update():执行DML语句。增、删、改语句
query():查询结果,将结果封装为JavaBean对象
query的参数:RowMapper
一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
new BeanPropertyRowMapper<类型>(类型.class)

public class JdbcTest {
    @Test
    public void query() {
        //查询所有学生
        JdbcTemplate tx = new JdbcTemplate(JDBCUtils.getDataSource());
        List students = tx.query("select * from person", new BeanPropertyRowMapper(Student.class));
        System.out.println(students);
    }

    @Test
    public void update() {
        //增加一个学生
        JdbcTemplate tx = new JdbcTemplate(JDBCUtils.getDataSource());
        int i = tx.update("insert into person values(?,?,?,?)", 6, "小明", "男", 35);
        System.out.println(i);
    }
}

你可能感兴趣的:(使用c3p0数据源和spring jdbc实现数据库操作)