zoukankan      html  css  js  c++  java
  • JDBC基础二

    1.配置文件:dbinfo.properties

    driverClass=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/test
    username=root
    password=root
    

    2.DBUtils.java

    package com.mf.util;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ResourceBundle;
    public class DBUtils {
    	private static String driverClass;
    	private static String url;
    	private static String username;
    	private static String password;
    	static{
    		//此对象是用于加载properties文件数据的
    		ResourceBundle rb = ResourceBundle.getBundle("dbinfo");
    		driverClass = rb.getString("driverClass");
    		url = rb.getString("url");
    		username = rb.getString("username");
    		password = rb.getString("password");
    		try {
    			Class.forName(driverClass);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}	
    	//得到连接的方法
    	public static Connection getConnection() throws Exception{
    		return DriverManager.getConnection(url, username, password);
    	}
    	//关闭资源的方法
    	public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
    		//关闭资源
    		if(rs!=null){
    			try {
    				rs.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			rs = null;
    		}
    		if(stmt!=null){
    			try {
    				stmt.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			stmt = null;
    		}
    		if(conn!=null){
    			try {
    				conn.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}
    	}
    }
    

    3.解决sql注入问题

    public class DoLogin {
    	
    	/**
    	 * 根据用户名和密码查询用户对象信息
    	 * @param name
    	 * @param pwd
    	 * @return u
    	 */
    	public User findUser(String name,String pwd){
    		Connection conn = null;
    		PreparedStatement stmt = null;
    		ResultSet rs = null;
    		User u = null;
    		try {
    			conn = DBUtils.getConnection();//得到连接对象Connection
    			String sql ="SELECT * FROM users WHERE NAME=? AND PASSWORD=?";
    			stmt = conn.prepareStatement(sql);//得到执行sql语句的对象Statement
    			//给?赋值
    			stmt.setString(1, name);
    			
    			rs = stmt.executeQuery();//执行sql语句
    			if(rs.next()){
    				u = new User();
    				u.setId(rs.getInt(1));
    				u.setName(rs.getString(2));
    				u.setPassword(rs.getString(3));
    				u.setEmail(rs.getString(4));
    				u.setBirthday(rs.getDate(5));
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally{
    			DBUtils.closeAll(rs, stmt, conn);
    		}
    		return u;
    	}
    

      

     https://www.cnblogs.com/fzz9/p/8970210.html

  • 相关阅读:
    关于java.lang.OutOfMemoryError: Java heap space的错误分析
    对TCP/IP网络协议的深入浅出归纳
    leetcode面试准备:Contains Duplicate I && II
    leetcode面试准备:Count Complete Tree Nodes
    leetcode面试准备: Jump Game II
    leetcode面试准备: Jump Game
    LeetCode解题报告:Linked List Cycle && Linked List Cycle II
    最小栈的实现与优化
    面试:归并排序
    leetcode面试准备:Decode Ways
  • 原文地址:https://www.cnblogs.com/cnki/p/5851302.html
Copyright © 2011-2022 走看看