java spring jdbc配置

来源:互联网 发布:淘宝休闲零食数据 编辑:程序博客网 时间:2024/05/16 17:12

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

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

   

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

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

      

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

  

[sql] view plaincopyprint?
  1. mysql> desc user;  
  2. +-------+-------------+------+-----+---------+----------------+  
  3. | Field | Type        | Null | Key | Default | Extra          |  
  4. +-------+-------------+------+-----+---------+----------------+  
  5. | id    | int(11)     | NO   | PRI | NULL    | auto_increment |  
  6. name  | varchar(20) | NO   |     | NULL    |                |  
  7. | pwd   | varchar(20) | NO   |     | NULL    |                |  
  8. +-------+-------------+------+-----+---------+----------------+  


 

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

               

[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  7.     <!-- 获取数据源 -->  
  8.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  
  9.         <!-- mysql数据库的驱动 -->  
  10.         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
  11.         <!-- 数据库的地址-->  
  12.         <property name="url" value="jdbc:mysql://localhost:3306/test"></property>  
  13.         <!-- 数据库名 -->  
  14.         <property name="username" value="root"></property>  
  15.         <!-- 数据库密码,我的数据库没设置密码,所以为空 -->  
  16.         <property name="password" value=""></property>  
  17.     </bean>  
  18.     <!-- jdbc的模板类-->  
  19.     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  20.         <!-- 给模板的变量dataSource赋值,指向第一个bean的id-->  
  21.         <property name="dataSource" ref="dataSource"></property>  
  22.     </bean>  
  23.     <!-- 我们自己定义的一个类,如果我们还没有userDAO这个类,请暂时不要下面的配置,后面写完UserDAO这个类再补上去-->  
  24.     <bean id="userdao" class="UserDAO">  
  25.         <!-- 给userdao的变量jdbcTemplate赋值-->  
  26.         <property name="jdbcTemplate" ref="jdbcTemplate"></property>  
  27.     </bean>  
  28. </beans>  

 

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

[java] view plaincopyprint?
  1. public class UserVO {  
  2.     private int id;  
  3.     private String name;  
  4.     private String pwd;  
  5.       
  6.     public UserVO() {  
  7.         super();  
  8.     }  
  9.   
  10.     public UserVO(int id, String name, String pwd) {  
  11.         super();  
  12.         this.id = id;  
  13.         this.name = name;  
  14.         this.pwd = pwd;  
  15.     }  
  16.   
  17.     public UserVO(String name, String pwd) {  
  18.         super();  
  19.         this.name = name;  
  20.         this.pwd = pwd;  
  21.     }  
  22.     public int getId() {  
  23.         return id;  
  24.     }  
  25.     public void setId(int id) {  
  26.         this.id = id;  
  27.     }  
  28.     public String getName() {  
  29.         return name;  
  30.     }  
  31.     public void setName(String name) {  
  32.         this.name = name;  
  33.     }  
  34.     public String getPwd() {  
  35.         return pwd;  
  36.     }  
  37.     public void setPwd(String pwd) {  
  38.         this.pwd = pwd;  
  39.     }  
  40. }  


 


 


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

[java] view plaincopyprint?
  1. import java.util.List;  
  2.   
  3.   
  4. public interface UserDAOInterface {  
  5.         public void insert(UserVO uservo);  
  6.         public void delete(int id);  
  7.         public void update(UserVO uservo);  
  8.         public UserVO select(int id);  
  9.         public List find();  
  10. }  

 

 

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

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. import java.sql.ResultSet;  
  2. import java.sql.SQLException;  
  3. import java.util.List;  
  4. import org.springframework.jdbc.core.JdbcTemplate;  
  5. import org.springframework.jdbc.core.RowMapper;  
  6. import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;  
  7.   
  8.   
  9. public class UserDAO implements UserDAOInterface {  
  10.     private JdbcTemplate jdbcTemplate;  
  11.       
  12.     /* 
  13.      * 查询所有的数据信息 
  14.      * (non-Javadoc) 
  15.      * @see UserDAOInterface#find() 
  16.      */  
  17.     public List find(){  
  18.         String sql="select * from user";  
  19.         return jdbcTemplate.query(sql, new UserMapper());  
  20.     }  
  21.     /* 
  22.      *  
  23.      * 使用rowMapper 19行用到, 因为query方法不能直接放回一个数组,所以我们只能通过rowMapper赋值给uservo; 
  24.      *  
  25.      * RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装 
  26.      */  
  27.     private static final class UserMapper implements RowMapper{  
  28.           
  29.   
  30.         public Object mapRow(ResultSet rs, int rowNum) throws SQLException {  
  31.             // TODO Auto-generated method stub  
  32.             UserVO uservo=new UserVO();  
  33.             uservo.setId(rs.getInt("id"));  
  34.             uservo.setName(rs.getString("name"));  
  35.             uservo.setPwd(rs.getString("pwd"));  
  36.             return uservo;  
  37.         }  
  38.           
  39.       
  40.     }  
  41.     /* 
  42.      * 删除信息 
  43.      * (non-Javadoc) 
  44.      * @see UserDAOInterface#delete(int) 
  45.      */  
  46.     public void delete(int id) {  
  47.         // TODO Auto-generated method stub  
  48.         String sql="delete from user where id=?";  
  49.         jdbcTemplate.update(sql,id);  
  50.     }  
  51.     /* 
  52.      * 增加信息 
  53.      * (non-Javadoc) 
  54.      * @see UserDAOInterface#insert(UserVO) 
  55.      */  
  56.     public void insert(UserVO uservo) {  
  57.         // TODO Auto-generated method stub  
  58.         String sql=" insert into user (name,pwd) values(?,?)";  
  59.         jdbcTemplate.update(sql,new Object[]{  
  60.                 uservo.getName(),uservo.getPwd()  
  61.         });  
  62.     }  
  63.     /* 
  64.      * 查询信息 
  65.      * (non-Javadoc) 
  66.      * @see UserDAOInterface#select(int) 
  67.      */  
  68.     public UserVO select(int id) {  
  69.         // TODO Auto-generated method stub  
  70.         String sql="select * from user where id=?";  
  71.         return jdbcTemplate.queryForObject(sql, ParameterizedBeanPropertyRowMapper.newInstance(UserVO.class),id);  
  72.   
  73.     }  
  74.     /* 
  75.      * 更新信息 
  76.      * (non-Javadoc) 
  77.      * @see UserDAOInterface#update(UserVO) 
  78.      */  
  79.     public void update(UserVO uservo) {  
  80.         // TODO Auto-generated method stub  
  81.         String sql="update user set name=?,pwd=? where id=?";  
  82.         jdbcTemplate.update(sql,uservo.getName(),uservo.getPwd(),uservo.getId());  
  83.     }  
  84.     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
  85.         this.jdbcTemplate = jdbcTemplate;  
  86.     }  
  87.     public JdbcTemplate getJdbcTemplate() {  
  88.         return jdbcTemplate;  
  89.     }  
  90.   
  91. }  


 

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

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. import javax.sql.DataSource;  
  2.   
  3. import org.springframework.context.ApplicationContext;  
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  5.   
  6.   
  7. public class Test {  
  8.     public static void main(String[] args){  
  9.         ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");  
  10.         /*DataSource dataSource=(DataSource) ac.getBean("dataSource"); 
  11.         System.out.println("dataSource--------"+dataSource);*/  
  12.         UserDAO userdao=(UserDAO) ac.getBean("userdao");  
  13.           
  14.           
  15.         //增加信息  
  16.         //UserVO uservo=new UserVO("123","123");  
  17.         //userdao.insert(uservo);  
  18.           
  19.         //删除信息  
  20.         //userdao.delete(22);  
  21.           
  22.         //修改信息  
  23.         //UserVO uservo=new UserVO(23,"lisi","123456");  
  24.         //userdao.update(uservo);  
  25.           
  26.         //按id查询信息  
  27.         //UserVO uservo=userdao.select(23);  
  28.         //System.out.println("userName---"+uservo.getName());  
  29.           
  30.         //查询所有信息  
  31.     /*  for(Object o:userdao.find()){ 
  32.             UserVO uservo=(UserVO) o; 
  33.             System.out.println("id----"+uservo.getId()+"---name----"+uservo.getName()+"------------pwd------"+uservo.getPwd()); 
  34.         }*/  
  35.     }  
  36. }  


最后我要说的是,这个jdbc是短时间整理出来的,可能存在不足的地方,望指出。spring 的mvc我也会抽空学习发表到博客上来。

0 0