您的位置:首页 > 数据库 > MySQL

mysql数据库的连接以及增删改查Java代码实现(PreparedStatement版)

2015-05-27 09:04 1016 查看
数据库:

create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32));

insert into t1(name,password) values('admin','123');
insert into t1(name,password) values('zhangsan','123');
insert into t1(name,password) values('lisi','123');


Java代码:

mySqlConnection.java代码:

package com.dbdao.mysql;

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

import org.junit.Test;

public class mySqlConnection {
	
	//创建数据库驱动名称
	private static String Driver_class="com.mysql.jdbc.Driver";
	
	//数据库链接地址
	private String url="jdbc:mysql://localhost:3306/test";
	
	//数据库用户名
	private String user="root";
	
	//数据库密码
	private String password="11";
	
	//数据库链接
	private Connection con=null;
	
	//准备声明sql语句
	private PreparedStatement pstmt=null;
	
	//结果集
	private ResultSet rs=null;
	
	//影响行数
	private int i;
	
	/*
	 * 创建驱动
	 * */
	static{
		
		try {
			Class.forName(Driver_class);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	/*
	 * 加载驱动
	 * */
	@Test
	public void getConnect() {
		// TODO Auto-generated method stub
		try {
			con=DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//判断数据库是否加载成功
		if(con!=null){
			
			System.out.println("数据库加载成功!");
			
		}else{
			
			System.out.println("数据库加载失败!");
			
		}
		
	}
	
	/*
	 * 执行sql语句
	 * */
	public void doSql(String sql,Object[] object) {
		// TODO Auto-generated method stub
		
		//判断sql语句是否存在
		if(sql!=null){
			
			//加载驱动
			getConnect();
			
			//判断object数组是否存在
			if(object==null){
				
				//如果不存在,创建一个,防止出现空指针异常
				object=new Object[0];
				
			}

			try {
				
				//声明一条准备的sql语句
				pstmt=con.prepareStatement(sql);
				
				//为Object对象一一赋值
				for(int i=0;i<object.length;i++){
					
					pstmt.setObject(i+1, object[i]);
					
				}
				
				//执行声明的sql语句
				pstmt.execute();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}else{
			
			System.out.println("sql语句并不存在!");
			
		}
	
	}
	
	/*
	 * 获取结果集
	 * */
	public ResultSet getRS(){
		
		try {
			
			//获取结果集方法
			rs=pstmt.getResultSet();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//返回结果集
		return rs;
		
	}
	
	/*
	 * 获取影响行数
	 * */
	public int getUpdateCount() {
		// TODO Auto-generated method stub
		
		try {
			
			//获取影响行数方法
			i=pstmt.getUpdateCount();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//返回影响行数
		return i;
		
	}
	
	 /* 
     * 关闭方法 
     * */  
    public void getClose() {  
        // TODO Auto-generated method stub  
          
        //关闭结果集  
        try {  
              
            //结果集关闭方法  
            if(rs!=null){  
                  
                rs.close();  
                  
            }  
              
        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
              
            //关闭声明的sql语句  
            try {  
                  
                //关闭声明的sql语句方法  
                if(pstmt!=null){  
                      
                    pstmt.close();  
                      
                }  
                  
            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }finally{  
                  
                //卸载驱动  
                try {  
                      
                    //驱动卸载方法  
                    if(con!=null){  
                          
                        con.close();  
                          
                    }  
                      
                } catch (SQLException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
                  
            }  
        
        }  
      
    }  

}


loginService.java代码:

package com.service;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

import com.dbdao.mysql.mySqlConnection;

public class loginService {
	
	//导入mySqlConnection类
	mySqlConnection mysqlCon=new mySqlConnection();
	
	//准备sql语句
	private String sql;
	
	//影响行数(数据变更后,影响行数都是大于0,等于0时没变更,所以说如果变更失败,那么影响行数必定为负)
	private int i=-1;
	
	//结果集
	private ResultSet rs;
	
	/*
	 * 插入数据
	 * */
	@Test
	public void insert() {
		// TODO Auto-generated method stub
		
		//创建sql语句
		sql="insert into t1(name,password) values(?,?)";
		
		//创建object数组
		Object[] object=new Object[]{"admin","123456"};
		
		//执行sql语句
		mysqlCon.doSql(sql, object);
		
		//获取影响行数
		i=mysqlCon.getUpdateCount();
		
		//判断是否插入成功
		if(i!=-1){	
			
			System.out.println("数据插入成功!");
			
		}else{
			
			System.out.println("数据插入失败!");
		
		}
		
		//关闭链接
		mysqlCon.getClose();
		
	}
	
	/*
	 * 删除数据
	 * */
	@Test
	public void delete() {
		// TODO Auto-generated method stub
		
		//创建sql语句
		sql="delete from t1 where id=?";
		
		//创建object数组
		Object[] object=new Object[]{3};
		
		//执行sql语句
		mysqlCon.doSql(sql, object);
		
		//获取影响行数
		i=mysqlCon.getUpdateCount();
		
		//判断是否删除成功
		if(i!=-1){
			
			System.out.println("数据删除成功!");
			
		}else{
			
			System.out.println("数据删除失败!");
			
		}
		
		//关闭链接
		mysqlCon.getClose();
		
	}
	
	/*
	 * 更新数据
	 * */
	@Test
	public void update() {
		// TODO Auto-generated method stub
		
		//创建sql语句
		sql="update t1 set password=? where name=?";
		
		//创建Object数组
		Object[] object=new Object[]{"11","admin"};
		
		//执行sql语句
		mysqlCon.doSql(sql, object);
		
		//获取影响行数
		i=mysqlCon.getUpdateCount();
		
		//判断数据是否更新成功
		if(i!=-1){
			
			System.out.println("数据更新成功!");
			
		}else{
			
			System.out.println("数据更新失败!");
			
		}
		
		//关闭链接
		mysqlCon.getClose();
		
	}
	
	/*
	 * 遍历数据
	 * */
	@Test
	public void select() {
		// TODO Auto-generated method stub
		
		//创建sql语句
		sql="select * from t1";
		
		//执行sql语句
		mysqlCon.doSql(sql, null);
		
		//获取结果集
		rs=mysqlCon.getRS();
		
		//判断结果集是否为空
		if(rs!=null){
			
			try {
				
				//将光标移动到结果集末端,注意此处不能使用rs.afterLast();否则为空值。
				rs.last();
				
				//获取结果集行数
				i=rs.getRow();
				
				//判断结果集是否存在
				if(i>0){
					
					//将光标移动到结果集前端
					rs.beforeFirst();
					
					//循环遍历所有行数
					while(rs.next()){
						
						//遍历每行元素的内容
						String name=rs.getString("name");
						String password=rs.getString("password");
						
						//在控制台打印出结果
						System.out.println("name:"+name+"   password:"+password);
						
					}
					
					
				}else{
					
					System.out.println("结果集为空!");
					
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}else{
			
			System.out.println("结果集不存在!");
			
		}
		
		//关闭链接
		mysqlCon.getClose();
		
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: