程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫的連接以及增刪改查Java代碼實現(PreparedStatement版)

mysql數據庫的連接以及增刪改查Java代碼實現(PreparedStatement版)

編輯:MySQL綜合教程

mysql數據庫的連接以及增刪改查Java代碼實現(PreparedStatement版)


數據庫:

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 {
			
			//結果集關閉方法
			rs.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			
			//關閉聲明的sql語句
			try {
				
				//關閉聲明的sql語句方法
				pstmt.close();
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				
				//卸載驅動
				try {
					
					//驅動卸載方法
					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();
		
	}

}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved