jdbc
编程最主要的就是要引入数据源,常见的有dbcp数据源,c3p0数据源等。
几个重要的类: JdbcTemplate,里面提供了dao的方法,需要提供数据源给他! JdbcDaoSupport RowMapper
说明:
无论采用什么样的方法必须把dataSource注入到JdbcTemplate里
1、继承JdbcDaoSupport(该类有JdbcTemplate)
2、继承JdbcTemplate
3、引入JdbcTemplate
1.xml配置:
"http://www.springframework.org/schema/beans" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" >
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
"locations">
classpath:jdbc.properties
"dataSource" destroy-method=
"close" class=
"org.apache.commons.dbcp.BasicDataSource" >
"driverClassName" value=
"${jdbc.driverClassName}" />
"url" value =
"${jdbc.url}" />
"username" value=
"${jdbc.username}" />
"password" value=
"${jdbc.password}" />
"classesDao" class=
"cn.itheima03.spring.jdbc.ClassesDaoImpl" >
"dataSource">
[
"dataSource"/>
]
"jdbcTemplate" class=
"org.springframework.jdbc.core.JdbcTemplate" >
"0" ref=
"dataSource" >
"classesDao2" class=
"cn.itheima03.spring.jdbc.ClassesDaoImpl2" >
"jdbcTemplate">
[
"jdbcTemplate"/>
]
"classesDao3" class=
"cn.itheima03.spring.jdbc.ClassesDaoImpl3" >
"0" ref=
"dataSource" >
"itheimaTemplate" class=
"cn.itheima03.spring.itheima03db.ItHeimaTemplate" >
"0" ref=
"dataSource" >
"classesDao4" class=
"cn.itheima03.spring.itheima03db.ClassesDaoImpl4" >
"0" ref=
"dataSource" >
============================================== 位于src目录下的配置文件:jdbc.properties jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql \://localhost\:3306/hibernate_itheima03 jdbc.username=root jdbc.password=root |
2.dao测试
/* * 方式一:继承JdbcDaoSupport,需要使用数据源,在配置文件中应该配置。 */ public class ClassesDaoImpl extends JdbcDaoSupport implements ClassesDao{ public void saveClasses() { this.getJdbcTemplate().execute("insert into classes(cname,description) values('a','a')"); } @Override public List
getClasses() {
return
this .getJdbcTemplate().query("select * from classes",
new ClassesRowMapper()) ; } } =================================================== /** * 方式二:引入JdbcTemplate */
public
class ClassesDaoImpl2
implements ClassesDao{
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate ; }
public
void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate; }
public
void saveClasses() {
this.jdbcTemplate .execute("insert into classes(cname,description) values('a','a')"); } @Override
public List
getClasses() {
return
null ; } } =================================================== /** * 方式三:继承JdbcTemplate,写一个以DataSource作为参数的构造函数。 */
public
class ClassesDaoImpl3
extends JdbcTemplate
implements ClassesDao{
public ClassesDaoImpl3(DataSource dataSource){
super(dataSource); }
public
void saveClasses() {
this.execute("insert into classes(cname,description) values('a','a')"); }
@Override
public List
getClasses() {
return
null; } } =================================================== /** * 方式四:自定义模板。 * * 在spring内部完成是面向接口编程 * 在spring的配置文件中,通过set方法或者构造器,给接口注入实现的类 * */
public
class ItHeimaTemplate {
private |
|