zoukankan      html  css  js  c++  java
  • java实现连接mysql数据库单元测试查询数据项目分享

    1、按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model 、db、dao、test;具体的架构详见下图:

    2、根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc) 具体的建立数据库操作详见下图:

    3、编写包中的各种类代码,具体参考代码如下:

    UserInfo.java

    /**
     * FileName:     UserInfo.java
     * @Description: TODO封装对象的信息
     * Copyright: personage  
     * Company  personage    
     * @author:    gaoxing
     * @version    V1.0 
     * Createdate:         2014-5-25 下午2:26:41
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2014-5-25       GX          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package com.org.user.model;
    
    /**
     * @ClassName:     UserInfo
     * @Description:TODO封装对象的信息
     * @author:   gaoxing
     * @date:        2014-5-25 下午2:26:41
     */
    public class UserInfo {
    	 private  int userid;
    	   private String username;
    	   private String password;
    	   
    /**
    	 * @Title:        UserInfo
    	 * @Description:    TODO(描述这个方法的作用)
    	 * @param:    @param userid
    	 * @param:    @param username
    	 * @param:    @param password
    	 * @throws
    	 */
    	public UserInfo(int userid, String username, String password) {
    		super();
    		this.userid = userid;
    		this.username = username;
    		this.password = password;
    	}
    	
    /**
     * @Title:        UserInfo
     * @Description:    TODO无参的构造方法
     * @param:    
     * @throws
     */
    public UserInfo() {
    	super();
    }
    
    public int getUserid() {
    		return userid;
    	}
    	public void setUserid(int userid) {
    		this.userid = userid;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
     
    }
    

    UserInfoDBManger.java

    /**
     * FileName:     UserInfoDBManger.java
     * @Description: TODO 连接数据库的操作
     * Copyright: personage  
     * Company  personage    
     * @author:    gaoxing
     * @version    V1.0 
     * Createdate:         2014-5-25 下午2:47:38
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2014-5-25       GX          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package com.org.user.db;
    
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.mysql.jdbc.Connection;
    import com.mysql.jdbc.PreparedStatement;
    
    /**
     * @ClassName: UserInfoDBManger
     * @Description:TODO连接数据库的操作
     * @author: gaoxing
     * @date: 2014-5-25 下午2:47:38
     */
    public class UserInfoDBManger {
    	private  static Connection conn = null;
    	private PreparedStatement ps = null;
    	private ResultSet rs = null;
    
    	public static  Connection getConn() {
    		String url = "jdbc:mysql://localhost:3306/test";
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			try {
    				conn = (Connection) DriverManager.getConnection(url, "root",
    						"mysql");
    			} catch (SQLException e) {
    				System.out.println(e.getMessage());
    			}
    		} catch (ClassNotFoundException e) {
    			System.out.println(e.getMessage());
    		}
    		return conn;
    	}
    
    	public void close() {
    		try {
    			rs.close();
    			ps.close();
    			conn.close();
    		} catch (SQLException e) {
    			e.getMessage();
    		}
    	}
    	
    }
    

    UserInfoDao.java

    /**
     * FileName:     UserInfoDao.java
     * @Description: TODO 处理通过数据库的连接进行操作对象信息
     * Copyright: personage  
     * Company  personage    
     * @author:    gaoxing
     * @version    V1.0 
     * Createdate:         2014-5-25 下午2:36:09
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2014-5-25       GX          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package com.org.user.dao;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.mysql.jdbc.Connection;
    import com.mysql.jdbc.PreparedStatement;
    import com.org.user.db.UserInfoDBManger;
    import com.org.user.model.UserInfo;
    
    /**
     * @ClassName:     UserInfoDao
     * @Description:TODO处理通过数据库的连接进行操作对象信息
     * @author:   gaoxing
     * @date:        2014-5-25 下午2:36:09
     */
    public class UserInfoDao {
    	Connection conn=null;
    	PreparedStatement ps=null;
    	ResultSet rs=null;
    	public   List<UserInfo>  find(){
    		List<UserInfo> list=new ArrayList<UserInfo>();
    		String sql="select * from  t_userinfo ";
    		conn=UserInfoDBManger.getConn();
    		try {
    			ps=(PreparedStatement) conn.prepareStatement(sql);
    			rs=ps.executeQuery();
    			while (rs.next()) {
    				UserInfo ui=new UserInfo();
    				 ui.setUserid(rs.getInt(1));
    				 ui.setUsername(rs.getString(2));
    				 ui.setPassword(rs.getString(3));
    				list.add(ui);
    				
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    	  	}
    		return list;
    	}
    }
    

    UserInfoTest.java

    /**
     * FileName:     UserInfoTest.java
     * @Description: TODO测试dao包的方法
     * Copyright: personage  
     * Company  personage    
     * @author:    gaoxing
     * @version    V1.0 
     * Createdate:         2014-5-25 下午5:43:03
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2014-5-25       GX          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package com.org.user.test;
    
    import static org.junit.Assert.*;
    
    import java.util.List;
    
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    import com.org.user.dao.UserInfoDao;
    import com.org.user.model.UserInfo;
    
    /**
     * @ClassName:     UserInfoTest
     * @Description:TODO 测试dao包的方法
     * @author:   gaoxing
     * @date:        2014-5-25 下午5:43:03
     */
    public class UserInfoTest {
    
    	/**
    	 * @Title: setUpBeforeClass
    	 * @Description: TODO(描述这个方法的作用)
    	 * @param: @throws java.lang.Exception   
    	 * @return: void   
    	 * @throws
    	 */
    	@BeforeClass
    	public static void setUpBeforeClass() throws Exception {
    	}
    
    	/**
    	 * @Title: tearDownAfterClass
    	 * @Description: TODO(描述这个方法的作用)
    	 * @param: @throws java.lang.Exception   
    	 * @return: void   
    	 * @throws
    	 */
    	@AfterClass
    	public static void tearDownAfterClass() throws Exception {
    	}
    
    	/**
    	 * Test method for {@link com.org.user.dao.UserInfoDao#find()}.
    	 */
    	@Test
    	public void testFind() {
    		 UserInfoDao  udao=new UserInfoDao();
    		 List<UserInfo>  list=udao.find();
    		 for (int i = 0; i < list.size(); i++) {
    			 UserInfo ui=list.get(i);
    			 System.out.println("名称:  "+ui.getUsername()+"密码:  "+ui.getPassword());
    
    		}
    	}
    
    }
    

    4、在编写好类内容之后,在搭建项目过程中要加入辅助的JUnit的测试包junit.jar,同时也要导入数据库的连接mysq-connector-java-5.1.7-bin.jar  sqljdbc.jar,这样才可以连接到数据库;

    5、所有的工作做好之后,就可以启动服务进行运行了查看结果了,如果在JUnit测试台和控制台出现如下结果就表示项目运行成功了。

  • 相关阅读:
    <<剪绳子>>题解
    P5743 小猴吃桃 题解
    注意C++中的int与long long 的乘法
    数组初始化方法总结
    一维差分和二维差分
    一维前缀和与二维前缀和
    例2-6 字母转换
    例1-11 评测机队列
    golang ---查找字串实例 IP address
    mongodb ---加减等操作
  • 原文地址:https://www.cnblogs.com/gxbk629/p/4489555.html
Copyright © 2011-2022 走看看