JDBC连接数据库和基础CURD操作

第一步,也是最容易忘记的一步。

就是导入 JDBC 的jar包。
JDBC连接数据库和基础CURD操作_第1张图片
直接复制到lib 文件夹即可。

2、
我们一般是数据库驱动单独写一个class。在使用的时候实例化它。
直接上代码了

package cap.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DbConnect {
	private static String driverName = "com.mysql.jdbc.Driver";   
	private static String userName = "root";                      
	private static String userPwd = "coder";                    
	//private static String dbName = "test";                    
	  
	public static Connection getDBconnection(){
		String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8";
		//这里的3306/后面接的test是数据库名!
		try{
		    Class.forName(driverName);		
		    Connection con=DriverManager.getConnection(url, userName, userPwd);
		    return con;		   
	    }catch (Exception e) {			
			   e.printStackTrace();
		}
		return null;
    } 
	   
    public static void closeDB(Connection con,PreparedStatement  pstm, ResultSet rs){
 	   try{
 		   if(rs!=null) rs.close(); 
 		   if(pstm!=null) pstm.close();
		   if(con!=null) con.close();				 
	   }catch (SQLException e) {				
			e.printStackTrace();			
	   }
	}
}

主要的连接数据库的代码就是这些,一般都是大同小异。不过大型项目开发一般不建议直接定义用户名和密码,而是把用户名和密码存放在XML文件中,便于更改密码(避免更改密码后要重新编译文件)。
3、
这是JDBC的操作。
直接上代码看注释

package cap.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.mysql.jdbc.Statement;
import cap.db.DbConnect;

public class UserDAO {

	protected static String INSERT_SQL="insert into account (id,userName,password) values (?,?,?)";
	protected static String SELECT_SQL="select * from account";
	
	Connection connection = null;
	ResultSet rs = null;
	
	PreparedStatement pStatement = null;
	Statement sStatement ;
	/*
	 * PreparedStatement和Statement是两种方法,一种是动态的,一种是静态的。带参数的时候推荐使用PreparedStatement,安全性高和性能好。
	 * 用法在下面都有体现
	 * */
	public static void main(String[] args) {
		
		UserDAO userDAO = new UserDAO();		//java的基础语法应该都知道。
		//userDAO.insert();
		userDAO.select();
	}
	
	public int insert() {
		try {
			connection = DbConnect.getDBconnection();
			pStatement = connection.prepareStatement(INSERT_SQL);
			pStatement.setInt(1,1);
			pStatement.setString(2,"张三");
			pStatement.setString(3,"123456");
			return pStatement.executeUpdate();		//操作类的返回值为int,成功返回1		
		} catch (Exception e) {
			// TODO: handle exception
			
		}
		finally {
			DbConnect.closeDB(connection, pStatement, rs);
	       }	
		return 0;
	}
	
	public void select() {

		try {
			connection = DbConnect.getDBconnection();
			sStatement = (Statement) connection.createStatement();
			ResultSet rs = sStatement.executeQuery(SELECT_SQL);
			while(rs.next()) {            
                System.out.println("id="+rs.getString("id")+" userName: "+rs.getString(2)+"  password:"+rs.getString(3) );
                //rs.getString("id")可以直接获取字段名。也可以用下角标,从1开始。
			}
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("查询异常");
			e.printStackTrace();    //打印异常信息
		}
		finally {
			DbConnect.closeDB(connection, pStatement, rs);
	       }		

		
	}
}

你可能感兴趣的:(基础知识)