java spring jdbc配置

       整理了一下java spring框架的jdbc,首先说明一下这个jdbc是在myeclipse下配置的,适合初学者。

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

java spring jdbc配置

   

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

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

java spring jdbc配置

      

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

  

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文件,直接给代码

               

<?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,里面的构造方法不能少,否则可能导致不能实例化或者参数多与少。废话不多说,给出具体代码:

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子类继承这个类的方法。很有效率的一段代码,我只写了五个,下面给出具体代码:

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个方法:代码如下:

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;
	}

}


 

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

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我也会抽空学习发表到博客上来。

java spring jdbc配置

上一篇:Java实现MySQL图片存取操作


下一篇:C# 调用 Rust 编写的 dll 之一:创建 dll