Spring对jdbc操作的支持

来源:互联网 发布:js input 光标颜色 编辑:程序博客网 时间:2024/06/07 00:09

Spring与jdbc

Spring对jdbc技术提供了很好的支持,体现在:

1.Spring对C3P0的支持2.Spring对jdbc提供了jdbcTemplate来简化jdbc操作3.JdbcTemplate模板工具类,类似于Dbutils组件。

对C3p0的支持

    public class UserDao {    /**     *保存方法     *连接管理     *jdbc操作     */        //IOC注入        private DataSource dataSource;        public DataSource getDataSource() {            return dataSource;        }        public void setDataSource(DataSource dataSource) {            this.dataSource = dataSource;        }        public void save(){            String sql="insert into t_dept(deptName) values('test');";            Connection con=null;            Statement stmt=null;            con=datasource.getConnection();            stmt=con.createstatement();            stmt.execute(sql);
<!--数据源对象:c3p0连接池 -->      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>        <property name="user" value="root"></property>            <property name="password" value="qqaazz"></property>        <property name="initialPoolSize" value="3"></property>            <property name="maxPoolSize" value="10"></property>        <property name="maxStatements" value="100"></property>            <property name="acquireIncrement" value="2"></property>      </bean><bean id="userDao" class="cn.itcast.h_jdbc.UserDao">            <property name="dataSource" ref="dataSource"></property>         </bean>

jdbcTemplate

    import org.springframework.jdbc.core.JdbcTemplate;    public class UserDao {        //IOC注入        private DataSource dataSource;        public DataSource getDataSource() {            return dataSource;        }        public void setDataSource(DataSource dataSource) {            this.dataSource = dataSource;        }        public void save(){            String sql="insert into t_dept(deptName) values('test');";            Connection con=null;            Statement stmt=null;            //使用jdbc模板工具类简化jdbc操作            JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);            jdbcTemplate.update(sql);            //插入修改删除都可以用这个方法

jdbcTemplate

queryForMap()
        public Dept findById(int id){            String sql="select * from t_dept where deptId=?";            JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);            //只能是一行            Map<String,Object> map=jdbcTemplate.queryForMap(sql,id);            System.out.println(map);            return null;        }
queryForList()

每一行封装成map,在装入list

        public Dept findById(int id){            String sql="select * from t_dept";            JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);            //只能是一行            Map<String,Object> map=jdbcTemplate.queryForMap(sql);            System.out.println(map);            return null;        }
query()

查询全部,每一行封装成map,在装入list

        public Dept findById(int id){            String sql="select * from t_dept";            JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);            //如何封装一行记录            List<Dept> list=            jdbcTemplate.query(sql,new RowMapper<Dept>(){@Overridepublic Dept mapRow(ResultSet rs,int index) throws SQLException{    Dept dept=new Dept();    dept.setDeptId(rs.getInt("deptId"));    dept.setDeptName(rs.getString("deptName"));    return list;}});            System.out.println(map);            return null;        }
query()

查询一行

        public Dept findById(int id){            String sql="select * from t_dept";            JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);            //如何封装一行记录            List<Dept> list=            jdbcTemplate.query(sql,new RowMapper<Dept>(){@Overridepublic Dept mapRow(ResultSet rs,int index) throws SQLException{    Dept dept=new Dept();    dept.setDeptId(rs.getInt("deptId"));    dept.setDeptName(rs.getString("deptName"));    return list;}},id);            System.out.println(map);            return null;        }//可以封装内部类class MyResult implements RowMapper<Dept>{        public Dept mapRow(ResultSet rs,int index) throws SQLException{            Dept dept=new Dept();            dept.setDeptId(rs.getInt("deptId"));            dept.setDeptName(rs.getString("deptName"));            return dept;        }    }那么在上述中,可以jdbcTemplate.query(sql,new MyResult())
原创粉丝点击