JDBC 增、查、删、改 和 防止sql注入登录

JDBC 专栏收录该内容
3 篇文章 0 订阅
package cn.mxl.jdbc04;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 
 * 	JDBC   增
 * 
 *	JDBC 增加表中的数据    用SQL语句
 *	
 * 	@author 
 *
 */
public class Test_JDBC {

	public static void main(String[] args) {
		Connection conn =null;
		// 加载驱动
		try {
			// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,  
			// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		// 建立连接
		try {
			 MySQL的JDBC : jdbc:mysql://主机名称:连接端口/数据库的名称,账号,密码
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","meng","3588105");
			System.out.println("建立连接成功");
			
//			Statement是用来向数据库发送要执行的SQL语句的!
//			Statement stmt =null;也可以定义全局变量 
			Statement stmt = conn.createStatement();
			
			//增加数据
			String sql ="insert into student(NO,name) values('2002','郭嘉')";
			int ret =stmt.executeUpdate(sql);

		} catch (SQLException e) {
			System.out.println("Mysql操作错误");
			e.printStackTrace();
		}finally {
			// 关闭连接
			if (conn!=null) {
				try {
					conn.close();
					System.out.println("关闭连接成功");
				} catch (SQLException e) {
					System.out.println("关闭连接出现错误");
					e.printStackTrace();
				}
			}
		}
	}

}

package cn.mxl.jdbc03;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 
 * JDBC   查
 * 
 *JDBC 查看表中指定列数据
 * @author 
 *
 */
public class Test_JDBC {

	public static void main(String[] args) {
		Connection conn = null;


		String sql; 
		// 加载驱动
		try {
			// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,  
			// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		// 建立连接
		try {
			//		    MySQL的JDBC : jdbc:mysql://主机名称:连接端口/数据库的名称,账号,密码
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","meng","3588105");
			System.out.println("建立连接成功");


			//			Statement是用来向数据库发送要执行的SQL语句的!Statement 
			//			Statement stmt =null;也可以定义全局变量 
			Statement stmt = conn.createStatement();

			//			查询所有表中数据 需要定义一个ResultSet (查看数据)
			//			ResultSet rt = null;也可以定义全局变量 
			ResultSet rt =stmt.executeQuery("select * from student");

			//一次查询一条,可以用循环查询。
			while(rt.next()){
				System.out.println(rt.getString("NO")+"\t"+rt.getString("name"));
				//System.out.println(rt.getString(1)+"\t"+rt.getString(2));
			}

		} catch (SQLException e) {
			System.out.println("Mysql操作错误");
			e.printStackTrace();
		}finally {
			// 关闭连接
			if (conn!=null) {
				try {
					conn.close();
					System.out.println("关闭连接成功");
				} catch (SQLException e) {
					System.out.println("关闭连接出现错误");
					e.printStackTrace();
				}
			}
		}
	}

}

package cn.mxl.jdbc05;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 
 * 	JDBC   删
 * 
 *	JDBC 删除表中的数据    用SQL语句
 *	
 * 	@author 
 *
 */
public class Test_JDBC {

	public static void main(String[] args) {
		Connection conn =null;
		// 加载驱动
		try {
			// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,  
			// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		// 建立连接
		try {
			 MySQL的JDBC : jdbc:mysql://主机名称:连接端口/数据库的名称,账号,密码
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","meng","3588105");
			System.out.println("建立连接成功");
			
//			Statement是用来向数据库发送要执行的SQL语句的!
//			Statement stmt =null;也可以定义全局变量 
			Statement stmt = conn.createStatement();
			
			//删除数据
			String sql = "delete from student where NO='2012001'";
			int ret =stmt.executeUpdate(sql);




		} catch (SQLException e) {
			System.out.println("Mysql操作错误");
			e.printStackTrace();
		}finally {
			// 关闭连接
			if (conn!=null) {
				try {
					conn.close();
					System.out.println("关闭连接成功");
				} catch (SQLException e) {
					System.out.println("关闭连接出现错误");
					e.printStackTrace();
				}
			}
		}
	}

}
package cn.mxl.jdbc02;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 
 * 	JDBC   改
 * 
 *	JDBC 更新(改)表中的数据 用SQL语句update
 *	stmt.executeLargeUpdate
 * 	@author 
 *
 */
public class Test_JDBC {

	public static void main(String[] args) {
		Connection conn = null;
		
		
		// 加载驱动
		try {
			// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,  
			// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		// 建立连接
		try {
			 MySQL的JDBC : jdbc:mysql://主机名称:连接端口/数据库的名称,账号,密码
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","meng","3588105");
			System.out.println("建立连接成功");
			
//			Statement是用来向数据库发送要执行的SQL语句的!
//			Statement stmt =null;也可以定义全局变量 
			Statement stmt = conn.createStatement();
			
			//更新数据(更改数据)
			String sql ="update student set name='诸葛亮' where NO=2012002";
			int ret =stmt.executeUpdate(sql);
			
			




		} catch (SQLException e) {
			System.out.println("Mysql操作错误");
			e.printStackTrace();
		}finally {
			// 关闭连接
			if (conn!=null) {
				try {
					conn.close();
					System.out.println("关闭连接成功");
				} catch (SQLException e) {
					System.out.println("关闭连接出现错误");
					e.printStackTrace();
				}
			}
		}
	}

}

创建表和向表插入数据

package cn.mxl.jdbc01;

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

import org.apache.log4j.Logger;

/**
 * 1.JDBC连接数据库
 * 2.创建表和向表插入数据
 * 
 * 
 * @author 
 *
 */

public class Test_JDBC {
	// 出现异常用LOG4J记录异常信息
	// private static Logger logger =Logger.getLogger(Test_JDBC.class.getName());
	public static void main(String[] args) {
		Connection conn = null;
		Statement stmt = null;
	
		// 加载驱动
		try {
            // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,  
            // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		// 建立连接
		try {
			 MySQL的JDBC : jdbc:mysql://主机名称:连接端口/数据库的名称,账号,密码
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBC","meng","3588105");
			System.out.println("建立连接成功");
			//在这里写操作数据库的SQL代码
            // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等  
            stmt = conn.createStatement();
            //定义表结构
            String sql = "create table student(NO char(20),name varchar(20),primary key(NO))";  
            int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功  
            if (result != -1) {  
                System.out.println("创建数据表成功");
                //sql语句插入数据
                sql = "insert into student(NO,name) values('2012001','陶伟基')";  
                result = stmt.executeUpdate(sql);  
                //sql语句插入数据
                sql = "insert into student(NO,name) values('2012002','周小俊')";  
                result = stmt.executeUpdate(sql); 
                //sql语句插入数据
                sql = "insert into student(NO,name) values('2012003','急急急')";  
                result = stmt.executeUpdate(sql);
                
                //查看表中所有信息 ResultSet
                sql = "select * from student";  
                ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值  
                System.out.println("学号\t姓名");  
                while (rs.next()) {  
                    System.out.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()  
                }  
            } 
			
		} catch (SQLException e) {
			System.out.println("Mysql操作错误");
			e.printStackTrace();
		}finally {
			// 关闭连接
			if (conn!=null) {
				try {
					conn.close();
					System.out.println("关闭连接成功");
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}

}












package cn.jdbc.denglu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class Test_JDBC {
	/**
	 * jdbc通过数据库进行账号密码验证。
	 * @param args
	 */

	public static void main(String[] args) {
		Connection conn =null;
		//Statement stmt =null;
		PreparedStatement stmt = null;
		ResultSet rt = null;
		
		Scanner input = new Scanner(System.in);
		System.out.println("\t请输入账号和密码");
		System.out.println("请输入账号:");
		String name=input.next();
		System.out.println("请输入密码:");
		String password =input.next();
	
		//加载驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		//建立连接
		try {
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "meng", "3588105");
			//用?占位符 代表
			String sql ="select * from student where name=?and password=?"; 
			
			stmt = conn.prepareStatement(sql);
			//两个参数,1是第一个?是第二个? 第二个参数 是 输入的值
			stmt.setObject(1, name);
			stmt.setObject(2, password);
			rt=stmt.executeQuery();
			if (rt.next()) {
				System.out.println("登录成功!!!");
			}else {
				System.out.println("登录失败,重新输入。");
			}
		
		}
		 catch (SQLException e) {
			e.printStackTrace();
		}
		
		//关闭连接
		if (conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (rt!=null) {
			try {
				rt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		

	}

}


  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论
请先登录 后发表评论~
©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页

打赏作者

一枚枫叶

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值