您的位置:首页 > 编程语言 > Java开发

java spring jdbc配置

2014-02-21 16:54 435 查看
整理了一下java spring框架的jdbc,首先说明一下这个jdbc是在myeclipse下配置的,适合初学者。

第一步我们在myeclipse下建立一个web项目,然后右击 项目名称 鼠标移动到 myeclipse 下,然后再移动到右边的add spring capabilities ,如图所示:



第二步,我们给项目加包spring3.0版本,并且添加四个包,把包复制到lib的目录下,否则可能提示你的项目中没有添加包,配置完之后我们就发现我们的项目多了一个

“applicationContext.xml”配置文件 和lib目录下的许多包。第二步的配置如图所示:



第三步,给项目添加一个mysql的数据驱动包,不懂的同学可以私聊我。并且使用一个数据库,数据库表的信息如下

[sql] view
plaincopyprint?

mysql> desc user;

+-------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(20) | NO | | NULL | |

| pwd | varchar(20) | NO | | NULL | |

+-------+-------------+------+-----+---------+----------------+

第四步,配置applicationContext.xml文件,直接给代码

[html] view
plaincopyprint?

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 获取数据源 -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<!-- mysql数据库的驱动 -->

<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

<!-- 数据库的地址-->

<property name="url" value="jdbc:mysql://localhost:3306/test"></property>

<!-- 数据库名 -->

<property name="username" value="root"></property>

<!-- 数据库密码,我的数据库没设置密码,所以为空 -->

<property name="password" value=""></property>

</bean>

<!-- jdbc的模板类-->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<!-- 给模板的变量dataSource赋值,指向第一个bean的id-->

<property name="dataSource" ref="dataSource"></property>

</bean>

<!-- 我们自己定义的一个类,如果我们还没有userDAO这个类,请暂时不要下面的配置,后面写完UserDAO这个类再补上去-->

<bean id="userdao" class="UserDAO">

<!-- 给userdao的变量jdbcTemplate赋值-->

<property name="jdbcTemplate" ref="jdbcTemplate"></property>

</bean>

</beans>

第五步,写一个封装类UserVO 也就是javaBean,里面的构造方法不能少,否则可能导致不能实例化或者参数多与少。废话不多说,给出具体代码:

[java] view
plaincopyprint?

public class UserVO {

private int id;

private String name;

private String pwd;

public UserVO() {

super();

}

public UserVO(int id, String name, String pwd) {

super();

this.id = id;

this.name = name;

this.pwd = pwd;

}

public UserVO(String name, String pwd) {

super();

this.name = name;

this.pwd = pwd;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

}

第六步,写一个dao的继承类,里面写我们增删改查的方法,主要是让其它的dao子类继承这个类的方法。很有效率的一段代码,我只写了五个,下面给出具体代码:

[java] view
plaincopyprint?

import java.util.List;

public interface UserDAOInterface {

public void insert(UserVO uservo);

public void delete(int id);

public void update(UserVO uservo);

public UserVO select(int id);

public List find();

}

第七步,我们可以写我们的dao子类了,只要继承我们第六步的接口类即可继承5个方法:代码如下:

[java] view
plaincopyprint?





import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowMapper;

import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;

public class UserDAO implements UserDAOInterface {

private JdbcTemplate jdbcTemplate;

/*

* 查询所有的数据信息

* (non-Javadoc)

* @see UserDAOInterface#find()

*/

public List find(){

String sql="select * from user";

return jdbcTemplate.query(sql, new UserMapper());

}

/*

*

* 使用rowMapper 19行用到, 因为query方法不能直接放回一个数组,所以我们只能通过rowMapper赋值给uservo;

*

* RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装

*/

private static final class UserMapper implements RowMapper{

public Object mapRow(ResultSet rs, int rowNum) throws SQLException {

// TODO Auto-generated method stub

UserVO uservo=new UserVO();

uservo.setId(rs.getInt("id"));

uservo.setName(rs.getString("name"));

uservo.setPwd(rs.getString("pwd"));

return uservo;

}

}

/*

* 删除信息

* (non-Javadoc)

* @see UserDAOInterface#delete(int)

*/

public void delete(int id) {

// TODO Auto-generated method stub

String sql="delete from user where id=?";

jdbcTemplate.update(sql,id);

}

/*

* 增加信息

* (non-Javadoc)

* @see UserDAOInterface#insert(UserVO)

*/

public void insert(UserVO uservo) {

// TODO Auto-generated method stub

String sql=" insert into user (name,pwd) values(?,?)";

jdbcTemplate.update(sql,new Object[]{

uservo.getName(),uservo.getPwd()

});

}

/*

* 查询信息

* (non-Javadoc)

* @see UserDAOInterface#select(int)

*/

public UserVO select(int id) {

// TODO Auto-generated method stub

String sql="select * from user where id=?";

return jdbcTemplate.queryForObject(sql, ParameterizedBeanPropertyRowMapper.newInstance(UserVO.class),id);

}

/*

* 更新信息

* (non-Javadoc)

* @see UserDAOInterface#update(UserVO)

*/

public void update(UserVO uservo) {

// TODO Auto-generated method stub

String sql="update user set name=?,pwd=? where id=?";

jdbcTemplate.update(sql,uservo.getName(),uservo.getPwd(),uservo.getId());

}

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

this.jdbcTemplate = jdbcTemplate;

}

public JdbcTemplate getJdbcTemplate() {

return jdbcTemplate;

}

}

第八步就是给出我的测试代码:

[java] view
plaincopyprint?





import javax.sql.DataSource;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

public static void main(String[] args){

ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

/*DataSource dataSource=(DataSource) ac.getBean("dataSource");

System.out.println("dataSource--------"+dataSource);*/

UserDAO userdao=(UserDAO) ac.getBean("userdao");

//增加信息

//UserVO uservo=new UserVO("123","123");

//userdao.insert(uservo);

//删除信息

//userdao.delete(22);

//修改信息

//UserVO uservo=new UserVO(23,"lisi","123456");

//userdao.update(uservo);

//按id查询信息

//UserVO uservo=userdao.select(23);

//System.out.println("userName---"+uservo.getName());

//查询所有信息

/* for(Object o:userdao.find()){

UserVO uservo=(UserVO) o;

System.out.println("id----"+uservo.getId()+"---name----"+uservo.getName()+"------------pwd------"+uservo.getPwd());

}*/

}

}

最后我要说的是,这个jdbc是短时间整理出来的,可能存在不足的地方,望指出。spring 的mvc我也会抽空学习发表到博客上来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: